次のコードを使用して、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 データ テーブルと同じエラーが発生しました。
どんな助けでも大歓迎です。