我正在尝试使用EPPlus库将带有1000000条记录的数据表导入Excel。
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo");
var recordCount = dt.Rows.Count;
ws.Cells["A5"].LoadFromDataTable(dt, true);
我在Row Out of Range
行
ws.Cells["A5"].LoadFromDataTable(dt, true);
例外
当我有1000条记录时,它就有用了。
使用EPPlus时是否有行限制大小?
答案 0 :(得分:3)
您可能尝试导入超过1.000.000条记录。抛出此异常之前的最大值为1.048.576(与Excel 2010版本的最大行数specified完全相等)。
查看源代码:
ExcelRangeBase.cs中LoadFromDataTable
方法的最后一行返回导入的excelrange:_worksheet.Cells[...]
您可以在ExcelRange.cs中找到此索引器的实现,然后您会看到该范围由ValidateRowCol
验证(一直在底部)。
最后,当请求的行大于excel包的MaxRows属性时,此验证会抛出您提到的异常,该属性等于1.048.576
答案 1 :(得分:2)
当你得到“Row out of range”时,可能是row参数太高或太低了。 请记住,它从 1 开始计数。
答案 2 :(得分:0)
将列表放置在列表中时出现此错误。应该只是一个列表,而不是列表中的列表。
确切地说,我创建了一个对象列表,然后将其放入列表中,解析为JSON并使用JsonConvert.DeserializeObject(json,jsonFormat)加载到DataTable中。然后我得到了错误。