EPPlus,处理大型 ExcelWorksheet

EPPlus, handling big ExcelWorksheet

我每天和每周使用 EPPlus 创建 xls 报告。但有时时间线大于一年,在我的最后一个案例中是三年,所以总行数约为 180k。

在这种情况下,我已经针对 SQL 服务器数据库优化了查询,但我认为我的瓶颈是 "ExcelWorksheet" 对象:我猜是否有机会保存它每次文件 50k 行而不是完全保存,因此内存使用量可能会比现在少。

有人对实施有想法吗?

不幸的是,我没有最好的消息。看看这些:

EPPlus Large Dataset Issue with Out of Memory Exception

Load large amount of excel data with EPPlus

简短的回答是 EPPlus 会 运行 内存不足,正如您已经发现的那样。即使最新版本 4 改进了存储过程以缩小单元格对象的大小,我仍然达到了极限。

在第一个 link 中,我谈到编写代码来执行 XML 操作,但没有时间尝试。如果你能得到它,我很乐意看到它:)。

但是如果你想以 50K 的批次导出 sheets,你应该在单独的文件中进行,然后将它们与 EPPlus 之外的 VBA 之类的东西合并,正如我在踏板之一。我在这里展示了一个类似的例子,其中 VBA 在加载 sheet 时自动触发:

EPPlus Pivot Table - Copy Values to New Sheet