2

次のコードを使用して、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 は範囲を完全に正常にインポートします。

2 番目のデータ テーブル、dtImport2 はエラーなしでインポートしますが、最後のレコードは部分的に入力されたままです。

dtimport3 はまったくインポートせず、次の例外が発生します。

「この表には、このスプレッドシートで定義されたセルの範囲外のセルが含まれています」

エラーなしでExcelからすべての行を取得するようにコードを改善するにはどうすればよいですか?

追加情報:

インポートする必要があるExcelには約58433行のデータがあります。

.xlsx (2007 Excel) からのインポート

1 つのデータテーブルのみを使用してタブ全体をインポートしようとしましたが、dtImport3 データ テーブルと同じエラーが発生しました。

どんな助けでも大歓迎です。

4

1 に答える 1

0


次の記事「ExcelからSQLServerへのデータのインポート」 を確認してください

よろしく。

于 2012-06-01T23:12:32.280 に答える