【发布时间】:2016-02-29 21:37:43
【问题描述】:
我正在尝试使用 32 位 C# 应用程序创建大型 XLSX 文件。对于这个要求,二进制文件必须是 32 位的(决定权不是我的)。但是它确实可以在具有 16+GB RAM 的 64 位机器上运行。
我曾尝试使用 NPOI 和 EPPlus 编写 XLSX 文件。我可以毫无问题地编写小文件。当我写入更大的数据时,我会遇到内存不足的问题。以 CSV 表示的相同数据只有 80MB。我希望 XLSX 对象一定很大,因为我认为我至少有几 GB 的未分段内存可用)。
我尝试编写一个 CSV 文件(在这种情况下,它会生成一个 80MB 的 CSV 文件),然后使用 EPPlus 的 LoadFromText 函数创建一个 XLSX。同样适用于小文件,但对于 80MB 的 CSV,创建 XLSX 需要 21 多个小时。
我想要一个可扩展的解决方案。因此,我不能依赖于一次在内存中拥有一个代表整个 XLSX 文件的对象。有谁知道编写 XLSX 文件的方法,不需要一次在内存中拥有一个代表整个 XLSX 文件的对象?
我认为 Perl 的 Excel::Writer::XLSX 可以做到这一点,但我需要一个 C# 解决方案。我最好不需要自己编写或从其他库移植的一个。
有人知道有什么选择吗?
【问题讨论】:
标签: xlsx