2016-03-25 45 views
0

EPPlusライブラリを使用して1000000レコードのデータテーブルをExcelにインポートしようとしています。EPPlus - 行範囲外例外

ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo"); 
var recordCount = dt.Rows.Count; 
ws.Cells["A5"].LoadFromDataTable(dt, true); 

私は1000本の記録を持っていたとき、それが働いた

ws.Cells["A5"].LoadFromDataTable(dt, true);ライン上Row Out of Range例外を取得しています。

EPPlusで作業するときに行制限サイズがありますか?

+0

に等しいexcelpackage、の場合、MaxRowsプロパティよりも大きい場合にはあなたが言及した例外をスロー? – dbugger

+0

Excelバージョンは2010年です – gene

+0

これは100万レコードを保持します。古いバージョンは64Kのみでした。 EPPlusには制限がありません。ちょっとしたグーグルでは、エラーの原因となったws.Cells ["A5"]かもしれません。 – dbugger

答えて

2

おそらく1.000.000を超えるレコードをインポートしようとしました。この例外をスローする前の最大値は1.048.576です(これは、Excelバージョン2010の場合は最大行数specifiedとまったく同じです)。

ソースコードを見てください:'LLを_worksheet.Cells[...]

あなたはExcelRange.csにこのインデクサーの実装を見つけることができますし、そこに:ExcelRangeBase.csLoadFromDataTable方法の最後の行がインポートされたexcelrangeを返し

範囲がValidateRowColによって確認されていることを確認してください(一番下の方)。

最後に、この検証が要求された行は、あなたが使用しているExcelのバージョンは何1.048.576

関連する問題