簡體   English   中英

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

[英]Loop worksheets in excel using c#

我想在Excel中循環所有工作表,並需要將其插入到sql server表中。

我已經完成了編碼部分,可以將一張工作表Excel插入到sql server表中。

如果excel包含更多工作表,我想循環這些工作表,並需要將其插入sql server表中。

我已經為循環目的編寫了以下代碼,但是它給出了以下錯誤;

“”捕獲了ComException“”由於以下錯誤,檢索具有CLSID {00024500-0000-0000-C000-000000000046}的組件的COM類工廠失敗:80040154未注冊類(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);

出現上述錯誤。 請給我建議。

您需要像安裝Microsoft Office一樣才能使用互操作程序集。

您必須:

  • 安裝Excel;
  • 或使用第三方組件,例如EPPlus

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM