循环工作表在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 。