![](/img/trans.png)
[英]OleDbDataAdapter.Fill(DataTable) not working with big xls file size
[英]Why is the OleDbDataAdapter.Fill() extremely slow?
我正在嘗試構建一個將讀取excel文件(.xlsx,.xls)的應用程序。 不幸的是,OleDbDataAdapter.Fill()的表現非常糟糕。 我花了2分鍾從文件中讀取一條記錄。
有關該文件的更多信息:
我目前正在使用的代碼來讀取文件:
string conStr = string.Empty;
string strQuery = string.Empty;
switch (extension)
{
case ".xls": //Excel 97-03
conStr = @"Provider=Microsoft.Jet.OleDb.12.0;Data Source=" + file_source + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';";
strQuery = "SELECT " + col_no + " * FROM [" + workbook + "] ";
break;
case ".xlsx": //Excel 07
//connection string to connect to the xlsx file
conStr = @"Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + file_source + ";Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1;';";
strQuery = "SELECT " + col_no + " * FROM [" + workbook + "] ";
break;
}
DataTable tbl = new DataTable();
OleDbDataAdapter ada = new OleDbDataAdapter(strQuery, conStr);
ada.Fill(tbl);
ada.Dispose();
return tbl;
非常感謝您的幫助!
謝謝!
將大型數據集存儲在Excel文件中是一個壞主意。 在我看來,預計在2分鍾內讀取250MB的Excel文件。
我建議切換到任何數據庫解決方案。 但是,如果您無法更改數據存儲,則可以嘗試使用Excel COM對象(但它需要在服務器計算機上安裝Excel)。 這是Teddy Garland的漫步。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.