, когда я пытаюсь создать файл Excel с более чем 1048576 строками, я получаю сообщение об ошибке:
System.ArgumentOutOfRangeException: номер строки должен быть в диапазоне от 1 до 1048576>
Как мне сгенерировать файл excel (в настоящее время у меня есть запрос на экспорт 7 000 000 строк).
Вот как я генерирую файлы:
public static byte[] ExportToExcel(IEnumerable<object> data, string sheetName)
{
if (data == null)
{
return null;
}
XLWorkbook wb = new XLWorkbook();
var ws = wb.Worksheets.Add(sheetName);
var columns = data.FirstOrDefault().GetType().GetProperties().ToList();
var greyBackgroun = XLColor.FromHtml("#DDDDDD");
for (var i = 0; i < columns.Count; i++)
{
ws.Row(1).Cell(i + 1).Value = columns[i].GetDisplayName();
ws.Row(1).Cell(i + 1).Style.Font.SetBold(true);
ws.Row(1).Cell(i + 1).Style.Fill.SetBackgroundColor(greyBackgroun);
}
ws.Cell(2, 1).InsertData(data).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Left);
ws.ColumnsUsed().AdjustToContents();
ws.RowsUsed().AdjustToContents();
using (MemoryStream memoryStream = new MemoryStream())
{
wb.SaveAs(memoryStream, false);
return memoryStream.ToArray();
}
}