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
我每天和每周使用 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