- 创建Excel表格,保存为CSV文件格式
首先打开Excel表格,将所需的数据填写进去,然后依次点击 “文件” -> “另存为” -> “其他格式”,在“另存为”对话框中,选择“CSV UTF-8 (逗号分隔)(*.csv)”格式并保存。将.csv文件上传到服务器中相应的路径下。 - 在ASP.NET中读取CSV文件
读取CSV文件可以使用DataTable类,首先需要在.cs文件中引用以下命名空间:
using System.Data;
using System.IO;
然后在代码中调用以下方法读取CSV文件:
string filePath = Server.MapPath(“~/UploadedFiles/test.csv”); //csv文件路径
StreamReader sr = new StreamReader(filePath, Encoding.UTF8); //使用StreamReader读取文件
string strLine = “”;
string[] tempArr;
DataTable dt = new DataTable();
strLine = sr.ReadLine();
tempArr = System.Text.RegularExpressions.Regex.Split(strLine, “,”); //使用正则表达式分隔数据
foreach (string tempStr in tempArr) //生成datatable列
{
dt.Columns.Add(tempStr, Type.GetType("System.String"));
}
while ((strLine = sr.ReadLine()) != null)
{
DataRow dr = dt.NewRow();
tempArr = System.Text.RegularExpressions.Regex.Split(strLine, ",");
for (int i = 0; i < tempArr.Length; i++)
{
dr[i] = tempArr[i];
}
dt.Rows.Add(dr);
}
sr.Close(); //关闭StreamReader
以上代码从CSV文件中读取数据,并将数据添加到DataTable对象中。
- 将数据导入到数据库中
将数据导入到数据库中可以使用SQL语句实现,以下是示例代码:
string connStr = “Data Source=xxx;Initial Catalog=xxx;User ID=xxx;Password=xxx”; //数据库连接字符串
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
foreach (DataRow dataRow in dt.Rows)
{
string sqlCmd = "INSERT INTO [TableName]([Column1], [Column2], [Column3], [Column4]) "
+ "VALUES('" + dataRow[0].ToString() + "', '" + dataRow[1].ToString() + "', '" + dataRow[2].ToString() + "', '" + dataRow[3].ToString() + "')";
SqlCommand cmd = new SqlCommand(sqlCmd, conn);
cmd.ExecuteNonQuery();
}
conn.Close(); //关闭数据库连接
以上代码将DataTable中的数据逐一插入到数据库中特定的表中。
完整代码如下:
protected void btnImport_Click(object sender, EventArgs e)
{
string filePath = Server.MapPath("~/UploadedFiles/test.csv"); //csv文件路径
StreamReader sr = new StreamReader(filePath, Encoding.UTF8); //使用StreamReader读取文件
string strLine = "";
string[] tempArr;
DataTable dt = new DataTable();
strLine = sr.ReadLine();
tempArr = System.Text.RegularExpressions.Regex.Split(strLine, ","); //使用正则表达式分隔数据
foreach (string tempStr in tempArr) //生成datatable列
{
dt.Columns.Add(tempStr, Type.GetType("System.String"));
}
while ((strLine = sr.ReadLine()) != null)
{
DataRow dr = dt.NewRow();
tempArr = System.Text.RegularExpressions.Regex.Split(strLine, ",");
for (int i = 0; i < tempArr.Length; i++)
{
dr[i] = tempArr[i];
}
dt.Rows.Add(dr);
}
sr.Close(); //关闭StreamReader
string connStr = "Data Source=xxx;Initial Catalog=xxx;User ID=xxx;Password=xxx"; //数据库连接字符串
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
foreach (DataRow dataRow in dt.Rows)
{
string sqlCmd = "INSERT INTO [TableName]([Column1], [Column2], [Column3], [Column4]) "
+ "VALUES('" + dataRow[0].ToString() + "', '" + dataRow[1].ToString() + "', '" + dataRow[2].ToString() + "', '" + dataRow[3].ToString() + "')";
SqlCommand cmd = new SqlCommand(sqlCmd, conn);
cmd.ExecuteNonQuery();
}
conn.Close(); //关闭数据库连接
Response.Write("<script>alert('导入成功!')</script>");
}
您好,您可以参考如下代码示例进行asp.net excel导入数据库:
- 首先,你需要从Excel文件中读取数据,然后将数据存储在一个数据表中。
//读取Excel文件并将数据存储在数据表中
string path = Server.MapPath("~/ExcelFiles/文件名.xlsx");//获取文件路径
string connString = "Provider=Microsoft.Ace.OleDb.12.0; Data Source=" + path + ";Extended Properties=Excel 12.0;";
OleDbConnection conn = new OleDbConnection(connString);
OleDbCommand cmd = new OleDbCommand("select * from [Sheet1$]", conn);
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
DataTable dt = new DataTable();
dt.Load(dr);
- 然后,你需要将数据表中的数据插入到数据库中。
//将数据插入到数据库中
string strConn = "Data Source=.;Initial Catalog=数据库名;uid=用户名;pwd=密码";
SqlBulkCopy bulkCopy = new SqlBulkCopy(strConn);
bulkCopy.DestinationTableName = "表名";
bulkCopy.WriteToServer(dt);
以上就是如何使用asp.net将Excel中的数据导入到数据库中的示例。希望对您有所帮助。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/159377.html