循环工作表在Excel中使用C#

我想循环所有工作表在Excel中,需要插入到SQL Server表中。

我已经完成了一个编码部分插入一个单张表excel到一个sql服务器表。

如果Excel中包含更多的工作表,我想要循环这些工作表,并需要将其插入到SQL Server表中。

我写了下面的代码循环的目的,但它给出了以下错误;

“ComException被捕获”“检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败,原因如下:80040154类未注册(exception来自HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。

这是循环的代码:

string path = @"D:/Projects/sample.xls"; string strConnection = ConfigurationManager.ConnectionStrings["Source"].ToString(); string excelConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\";"; Excel.Application ExcelApp = new Excel.Application(); var Wbook = ExcelApp.Workbooks.Open(path); foreach (var sheet in Wbook.Worksheets) { OleDbCommand cmd = new OleDbCommand("Select [Name], [City], [Address], [Designation] from [" + sheet + "$]", excelConnection); excelConnection.Open(); OleDbDataReader dReader; dReader = cmd.ExecuteReader(); SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection); //Give your Destination table name sqlBulk.DestinationTableName = "temp1"; sqlBulk.WriteToServer(dReader); excelConnection.Close(); } 

但在执行该行时

 var Wbook = ExcelApp.Workbooks.Open(path); 

出现上述错误。 请build议我。

您需要安装Microsoft Office才能使用互操作程序集,就像您一样。

你必须:

  • 安装Excel;
  • 或使用第三方组件,如EPPlus 。