繁体   English   中英

如何生成超过 1048576 行的 Excel 工作表

[英]How to generate Excel sheets with more than 1048576 rows

当我尝试生成超过 1048576 行的 excel 文件时,出现错误:

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();
        }
    }

更新:

发现 Excel 有一个行限制(它是 1048576)。 我只会生成一堆文件并压缩它们,而不是生成一个有 700 万行的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM