如何从excel中填充C#中的数据表

时间:2012-06-01 23:00:18

标签: c# excel-2007

我使用以下代码将数据从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数据表相同的错误。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以查看以下文章
Import data from Excel to SQL Server
希望有所帮助。
问候。

相关问题