c# - 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.
还开着。
解决方案
推荐阅读
- python - Scrapy 在执行时抛出“ModuleNotFoundError”
- angular - Angular ngIf+else 风格
- windows - 如何通过资源管理器删除 Python 文件
- python - Python numpy 快速数组计算到二维数组(矩阵)
- javascript - 确保在重新渲染组件时执行 componentDidMount 中的代码
- java - 使用 AWS 开发工具包的 java.lang.NoSuchMethodError
- python - django call_command migrate 似乎杀死了进程
- java - 使用 Angular 5 显示来自 MySQL 数据库的 Blob 图像
- amazon-web-services - AWS Elastic Beanstalk Docker 容器的重启策略
- python - 为什么使用 create_task 创建的期货永远运行?