怎样从Excel文件将数据导入到SQL Server数据库?

时间:2022-10-20 12:40:25

我们可以使用OleDbConnection作为一个数据源连接到Excel文件。在此之后,我们使用DbDataReader中来访问我们想要的Excel数据。然后,我们可以使用使用SqlBulkCopyDataReader复制数据到目标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);

       }

   }

}

 

SqlBulk将以最高性能来实现导入过程这个想法和代码来自David Hayden的博客文章,

      http://davidhayden.com/blog/dave/archive/2006/05/31/2976.aspx

 

相关帖子:

      http://social.msdn.microsoft.com/Forums/en-US/vbide/thread/15e9e292-247c-45dd-8510-6f1325fbc404/

http://social.msdn.microsoft.com/Forums/en-US/vbinterop/thread/3e9e8441-36be-4f70-826b-51badb9a9bb3/