c# 把excel中的多个sheet表导入数据库
时间: 2024-03-17 12:40:19 浏览: 64
c# 实现excel数据导入到数据库
3星 · 编辑精心推荐
可以使用C#中的OleDb库来读取Excel文件,然后使用ADO.NET来将数据插入到数据库中。下面是一个简单的示例代码:
```csharp
using System.Data.OleDb;
using System.Data.SqlClient;
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\example.xlsx;Extended Properties=Excel 12.0;";
OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();
// 获取Excel中所有的sheet表
DataTable table = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
List<string> sheetNames = new List<string>();
foreach (DataRow row in table.Rows)
{
string sheetName = row["TABLE_NAME"].ToString();
sheetNames.Add(sheetName);
}
// 将每个sheet表中的数据插入到数据库中
string sql = "INSERT INTO MyTable (Column1, Column2) VALUES (?, ?)";
SqlCommand command = new SqlCommand(sql, sqlConnection);
foreach (string sheetName in sheetNames)
{
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + sheetName + "]", connection);
DataTable data = new DataTable();
adapter.Fill(data);
foreach (DataRow row in data.Rows)
{
command.Parameters.AddWithValue("Column1", row[0]);
command.Parameters.AddWithValue("Column2", row[1]);
command.ExecuteNonQuery();
command.Parameters.Clear();
}
}
connection.Close();
```
其中,`MyTable`是要插入数据的表名,`Column1`和`Column2`是表中的列名,可以根据实际情况进行修改。需要注意的是,Excel文件必须是`.xlsx`格式,如果是`.xls`格式需要使用不同的连接字符串。
阅读全文