EPPlus-行超出范围异常



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

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

我在ws.Cells["A5"].LoadFromDataTable(dt, true);线路上收到Row Out of Range异常

当我有1000张唱片时,它起了作用。

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

您可能试图导入超过1.000.000条记录。引发此异常之前的最大值为1.048.576(正好等于为Excel版本2010指定的最大行数)。

看看源代码:

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

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

最后,当请求的行大于excelpackage的MaxRows属性时,此验证抛出您提到的异常,该属性等于1.048.576

当您得到"行超出范围";,行参数可能过高或过低。记住它从1开始计数。

当我在列表中放置列表时,出现了这个错误。应该只是一个列表,而不是列表中的列表。

确切地说,我创建了一个对象列表,然后将其放入列表中,解析为JSON,并使用JsonConvert.DescializeObject(JSON,jsonFormat)加载到DataTable中。然后我得到了错误。

最新更新