在Internet中搜索並嘗試一些代碼後,我使用Interop將數據從Excel導出到Datatable。問題是,它非常緩慢。有人可以給我一個關鍵,我怎麼能使它與Interop更快,而不是OLEDB或其他?使用Interop讀取Excel並保存在DataTable中的最快方法
我的代碼:
object misValue = System.Reflection.Missing.Value;
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(userSelectedFilePath2);
Excel._Worksheet xlWorksheet1 = xlWorkbook.Sheets[1];
Excel.Range xlRange1 = xlWorksheet1.UsedRange;
DataTable excelTb1 = new DataTable();
for (int j = 1; j <= xlRange1.Columns.Count; j++) // Header Names
{
excelTb1.Columns.Add(xlRange1.Cells[1, j].Value2.ToString());
}
DataRow dataRow = null;
for (int row = 2; row < xlRange1.Rows.Count + 1; row++)
{
dataRow = excelTb1.NewRow();
for (int col = 1; col <= xlRange1.Columns.Count; col++)
{
dataRow[col - 1] = (xlRange1.Cells[row, col] as Excel.Range).Value2;
}
excelTb1.Rows.Add(dataRow);
}
xlWorkbook.Close(true, misValue, misValue);
xlApp.Quit();
dataGridView1.DataSource = excelTb1;
爲什麼你需要使用* interop *而不是其他技術? –
@SteveB:我嘗試了許多其他技術,OLEDB和NPOI,但遇到了很多問題。 OLEDB只讀255chars和NPOI必須添加dll文件和更新POI,這是有點複雜 –