EPPlus - 行超出范围异常

gen*_*ene 3 c# datatable epplus

我正在尝试使用 EPPlus 库将包含 1000000 条记录的数据表导入 Excel。

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

Row Out of Rangews.Cells["A5"].LoadFromDataTable(dt, true);网上遇到异常

当我有 1000 条记录时它起作用了。

使用 EPPlus 时是否有行限制大小?

Phi*_*ker 6

您可能尝试导入多于 1.000.000 条记录。引发此异常之前的最大值为 1.048.576(完全等于为 Excel 2010 版指定的最大行数)。

看看源代码:

ExcelRangeBase.cs 中LoadFromDataTable方法的最后一行返回导入的 excelrange:_worksheet.Cells[...]

您可以在ExcelRange.cs 中找到此索引器的实现,在那里您将看到该范围是由ValidateRowCol(一直在底部)验证的。

最后,当请求的行大于 excel 包的 MaxRows 属性(等于 1.048.576)时,此验证会抛出您提到的异常


pek*_*aaw 5

当出现“行超出范围”时,行参数可能过高或过低。请记住,它是从 1 开始计数的。