Как создать листы Excel с более чем 1048576 строк - PullRequest
0 голосов
/ 18 марта 2020

, когда я пытаюсь создать файл 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();
        }
    }

1 Ответ

0 голосов
/ 18 марта 2020

Обновление:

Обнаружено, что в Excel есть предел строки (и это 1048576). Я просто сгенерирую кучу файлов и заархивирую их вместо одного файла с 7 миллионами строк.

...