首页 > 解决方案 > EPPlus SaveXlsx 抛出数组尺寸超出支持的范围

问题描述

我正在尝试使用 EPPlus 保存 90000 行 x 2000 列的 excel 文件。错误是 System.OverflowException:“数组尺寸超出了支持的范围。” 从文档 Excel 支持最大列数16,384和行数1,048,567。请有任何想法

using (var excel = new ExcelPackage())
            {
                var ws = excel.Workbook.Worksheets.Add("test");
                //ws.Cells["A1"].LoadFromText(new FileInfo(csvFilePath));
                for(int r = 1; r < 90000; r++)
                {
                    for (int c = 1; c < 2000; c++)
                    {
                        ws.Cells[r, c].Value = r*c;
                    }
                }

                excel.SaveAs(new FileInfo(excelFilePath));
            }

错误:

System.OverflowException: 'Array dimensions exceeded supported range.'

通过添加到 app.conf 中解决

<runtime>
        <gcAllowVeryLargeObjects enabled="true" />
    </runtime>

和错误:

OfficeOpenXml.Packaging.Ionic.Zip.ZipException: 
Compressed or Uncompressed size, or offset exceeds the maximum value. 
Consider setting the UseZip64WhenSaving property on the ZipFile instance.

还开着。

标签: c#excelepplus

解决方案


推荐阅读