我正在寻找一个库来创建可以包含超过一百万行和几十列的 XLSX 文件。到目前为止,我在 Python 中找到的所有库都占用了太多内存,而且我还没有找到合适的库来包装在 C 中。我更喜欢开源,这样我可以在需要时修改代码。
编辑:我找到了解决方案。openpyxl 有一个“优化的编写器”:http ://packages.python.org/openpyxl/optimized.html
你试过元素树吗?如果这使用太多内存,请使用 SAX 并一次只处理一行。XML 解析 - ElementTree vs SAX 和 DOM
XLSX 格式由许多已压缩的 XML 文件组成。如果输出的格式不会改变,使用现有文件作为模板并在必要时简单地添加行将是微不足道的。不幸的是ZipFile.writestr
,不允许您将文件分段写入,因此您必须将整个 XML 写入临时文件,然后将其放入带有 .zip 的 zip 文件中ZipFile.write
。