我正在寻找一个库来创建可包含一百万行以及几十列的XLSX文件。到目前为止,我在Python中找到的所有库都消耗了太多内存,而且我还没有找到合适的库来包装C。我更喜欢开源,所以如果需要的话我可以修改代码。用于创建可处理数百万行的XLSX文档的Python(或C)库
编辑:我找到了解决方案。 openpyxl有一个“Optimized Writer”:http://packages.python.org/openpyxl/optimized.html
我正在寻找一个库来创建可包含一百万行以及几十列的XLSX文件。到目前为止,我在Python中找到的所有库都消耗了太多内存,而且我还没有找到合适的库来包装C。我更喜欢开源,所以如果需要的话我可以修改代码。用于创建可处理数百万行的XLSX文档的Python(或C)库
编辑:我找到了解决方案。 openpyxl有一个“Optimized Writer”:http://packages.python.org/openpyxl/optimized.html
你有没有试过ElementTree?如果它使用太多内存,请使用SAX并且一次只处理一行。 XML parsing - ElementTree vs SAX and DOM
不,但我不明白这些软件包会如何帮助我写入文件。整个文档不能在内存中创建:它太大了。 – rpkelly
我误解了你的问题;如果您只是从头开始创建,而不从其他文件获取输入,则可以一次将XLSX格式的数据逐行写出。你尝试过的图书馆不提供这些? –
@rpkelly:如果整个文档无法在内存中创建,那么一旦创建完文件,您将如何处理该文件? Excel是否足够聪明,只需加载你正在看的那一点? –
XLSX格式由许多已压缩的XML文件组成。如果输出的格式不会改变,那么使用现有文件作为模板并且根据需要简单地向其添加行将是微不足道的。不幸的是,ZipFile.writestr
不允许您将文件分成几部分,因此您必须将整个XML写入临时文件,然后将其与ZipFile.write
一起放入zip文件中。
RDB如SQLite怎么样? – zellio
@Mimisbrunnr:业务需求。 – rpkelly
哎哟,那不行。 – zellio