我正在使用以下代码将数据从 excel 2007 电子表格选项卡导入数据表。
DataTable dtImport1 = new DataTable();
DataTable dtImport2 = new DataTable();
DataTable dtImport3 = new DataTable();
string strRange1;
string strRange2;
string strRange3;
strRange1 = "A0:I22000";
strRange2 = "A22000:I41999";
strRange3 = "A41999:I58432";
OleDbDataAdapter cmdExcel1 = new OleDbDataAdapter("select * from [" + importTabs[i].ToString() + "$" + strRange1 + "]", connExcel);
cmdExcel1.Fill(dtImport1);
dtImport1.AcceptChanges();
OleDbDataAdapter cmdExcel2 = new OleDbDataAdapter("select * from [" + importTabs[i].ToString() + "$" + strRange2 + "]", connExcel);
cmdExcel2.Fill(dtImport2);
dtImport2.AcceptChanges();
OleDbDataAdapter cmdExcel3 = new OleDbDataAdapter("select * from [" + importTabs[i].ToString() + "$" + strRange3 + "]", connExcel);
cmdExcel3.Fill(dtImport3);
dtImport3.AcceptChanges();
到目前为止的情况如下:
dtImport1 可以很好地导入范围。
第二个数据表,dtImport2 导入没有错误,但最后一条记录仍然部分填充,
dtimport3 根本不导入,并给我以下异常:
“此表格包含超出此电子表格中定义的单元格范围的单元格”
如何改进代码,以便它从 excel 中提取所有行而不会出现任何错误?
附加信息:
我在 excel 中有大约 58433 行需要导入的数据。
从 .xlsx (2007 Excel) 导入
我尝试只使用一个数据表并导入整个选项卡,但它给了我与 dtImport3 数据表相同的错误。
任何帮助表示赞赏。