首先,我们可以使用OleDbConnection作为一个数据源连接到Excel文件。在此之后,我们使用DbDataReader中来访问我们想要的Excel数据。然后,我们可以使用使用SqlBulkCopy从DataReader复制数据到目标SQL Server表。我们所需要的仅仅是以下代码,
//连接字符串到Excel工作簿string excelConnectionString = @"Provider=Microsoft .Jet.OLEDB.4.0;Data Source=Book1.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
//创建连接到Excel工作簿using (OleDbConnection connection = new OleDbConnection(excelConnectionString))
{
OleDbCommand command = new OleDbCommand ("Select ID,Data FROM [Data$]", connection);
connection.Open();
//创建DbDataReader对数据工作表
using (DbDataReader dr = command.ExecuteReader())
{
// SQL Server 连接字符串
string sqlConnectionString = "Data Source=.; Initial Catalog=Test;Integrated Security=True";
// 大量复制到SQL Server
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
{
bulkCopy.DestinationTableName = "ExcelData";
bulkCopy.WriteToServer(dr);
}
}
}