我正试图使用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中。然后我得到了错误。