【问题标题】:How to write big set of data to xls file?如何将大量数据写入 xls 文件?
【发布时间】:2013-01-23 03:04:27
【问题描述】:

我有非常大的数据库,我想将其写入 xlsx/xls 文件。我已经尝试使用 xlwt,但它只允许写入 65536 行(我的一些表有超过 72k 行)。我还发现了 openpyxl,但它的运行速度太慢,而且要为大型电子表格使用大量内存。还有其他写excel文件的可能吗?

编辑: 按照 kennym 的建议,我使用了 Optimized Reader and Writer。它现在消耗的内存更少,但仍然很耗时。现在导出需要一个多小时(对于非常大的表 - 最多 10^6 行)。还有其他可能吗?也许可以将整个表从 HDF5 数据库 文件导出到 excel,而不是 逐行 - 就像现在在我的代码?

【问题讨论】:

  • 您可以尝试直接写入 .tsv/.csv,然后在 Excel 中打开它?
  • 65536 曾经是 Excel 中的一个限制 - 我虽然仍然如此。您可以创建一个制表符分隔的文件,看看您的 Excel 是否会加载它。
  • 我想知道这个问题是否没有更好的细分。比如说,遵循数据库结构的多个 excel 文件。我不确定是否需要拥有如此大的 xls 文件。
  • 我无法使用 .csv,因为每个文件中都有多个工作表。根据65536行,在这种情况下问题不是excel,而是xlwt,它无法创建限制为2 ^ 20行的.xlsx文件。 @Ben:我现在没有其他的可能,必须是优秀的......
  • @PawełChomicki 我并不是说不要使用 excel,我只是想问是否可以将其拆分为多个 excel 文件。

标签: python excel hdf5


【解决方案1】:

使用 openpyxl 包的Optimized Reader and Writer。与标准的 openpyxl 方法相比,优化后的读取器和写入器运行速度更快,使用的内存也少得多。

【讨论】:

【解决方案2】:

尝试在恒定内存模式下使用XlsxWriter

对于 .xls 文件,我担心没有内存优化方式。找到了吗?

【讨论】:

  • 使用 openpyxl 我在处理海量数据文件时遇到了内存溢出问题。使用带有 constant_memory 的 XlsxWriter 解决了这个问题。
【解决方案3】:

XlsxWriter 为我工作。我尝试了openpyxl,但它出错了。 22k*400 转*c

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多