【问题标题】:Python (or C) library for creating XLSX documents that can handle millions of rows [closed]用于创建可处理数百万行的 XLSX 文档的 Python(或 C)库 [关闭]
【发布时间】:2023-03-29 02:19:01
【问题描述】:

我正在寻找一个库来创建 XLSX 文件,该文件可以包含超过一百万行和几十列。到目前为止,我在 Python 中找到的所有库都占用了太多内存,而且我还没有找到合适的库来包装在 C 中。我更喜欢开源,这样我可以在需要时修改代码。

编辑:我找到了解决方案。 openpyxl 有一个“优化的编写器”:http://packages.python.org/openpyxl/optimized.html

【问题讨论】:

  • @Mimisbrunnr:业务需求。
  • CSV 会比 XLSX 更有效吗?

标签: python c excel xlsx openpyxl


【解决方案1】:

您尝试过 ElementTree 吗?如果这使用太多内存,请使用 SAX 并一次只处理一行。 XML parsing - ElementTree vs SAX and DOM

【讨论】:

  • 不,但我看不出这些软件包中的任何一个将如何帮助我编写文件。无法在内存中创建整个文档:它太大了。
  • 我看错了你的问题;如果您只是从头开始创建,而不是从其他文件获取输入,您可以一次以 XLSX 格式写出您的数据一行。您尝试过的库不提供这种功能?
  • @rpkelly:如果无法在内存中创建整个文档,那么一旦创建了文件,您将如何处理? Excel 是否足够聪明,可以只加载您正在查看的部分?
  • @Thomas K:是的,Excel 足够聪明。 @John Machin:1)是的,我有,Excel 可以处理它。 2) 如果您想回去回答问题以便我接受,我很乐意。
【解决方案2】:

XLSX 格式由许多已压缩的 XML 文件组成。如果输出的格式不会改变,使用现有文件作为模板并在必要时简单地添加行将是微不足道的。不幸的是,ZipFile.writestr 不允许您将文件分段写入,因此您必须将整个 XML 写入一个临时文件,然后使用 ZipFile.write 将其放入 zip 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    相关资源
    最近更新 更多