EPPlus,处理大型ExcelWorksheet

时间:2015-01-29 14:08:43

标签: excel-2010 epplus

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

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

任何人都对实施有所了解吗?

1 个答案:

答案 0 :(得分:1)

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

EPPlus Large Dataset Issue with Out of Memory Exception

Load large amount of excel data with EPPlus

简短回答是你已经发现EPPlus将耗尽RAM。即使最新版本的4改进了存储过程以缩小单元对象的大小,我仍然达到了极限。

在第一个链接中,我谈到编写代码来进行XML操作但没有时间尝试它。如果你随身携带它,我很乐意看到它:)。

但是如果你想要以50K的批量导出纸张,你应该在单独的文件中进行,然后将它们与EPPlus之外的VBA合并,就像我在其中一个步骤中提到的那样。我在这里展示了一个类似的例子,当加载工作表时VBA会自动激活:

EPPlus Pivot Table - Copy Values to New Sheet