如何从excel用C#填写数据表

如何从excel用C#填写数据表,c#,excel-2007,C#,Excel 2007,我使用以下代码将数据从Excel2007电子表格选项卡导入数据表 DataTable dtImport1 = new DataTable(); DataTable dtImport2 = new DataTable(); DataTable dtImport3 = new DataTable(); string strRange1; st

我使用以下代码将数据从Excel2007电子表格选项卡导入数据表

                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)导入

我试图只使用一个datatable并导入整个选项卡,但它给了我与dtImport3数据表相同的错误


感谢您的帮助

您可以查看以下文章

希望能有所帮助。

问候。

您可以查看以下文章

希望能有所帮助。

问候。

您是否确定您的电子表格是“干净的”,即没有奇怪的格式或电子表格末尾的数据?如果您尝试只导入最后一行,会发生什么情况?能否显示您的连接字符串?只是猜测一下,但是如果您使用的是旧的OLEDB驱动程序,可能会发生这种情况?是的,电子表格是干净的,没有格式错误。数据表对可以输入的数据量有限制吗?或者填写?您确定您的电子表格是“干净的”,即没有奇怪的格式,或者电子表格末尾没有数据吗?如果您尝试只导入最后一行,会发生什么情况?能否显示您的连接字符串?只是猜测一下,但是如果您使用的是旧的OLEDB驱动程序,可能会发生这种情况?是的,电子表格是干净的,没有格式错误。数据表对可以输入的数据量有限制吗?或者是填?