【问题标题】:Openpyxl loading existing excel takes too longOpenpyxl加载现有的excel需要太长时间
【发布时间】:2017-09-26 13:42:46
【问题描述】:

我正在使用 Python 2.7 的 openpyxl 打开并修改现有的 .xlsx 文件。这个 excel 文件大约有 2500 列,只有 10 行。问题是 openpyxl 加载文件需要很长时间(几乎 1 分钟)。有没有办法加快openpyxl的加载过程。从其他线程中,我发现了一些关于 read_only 和 write_only 的提示。但是我必须同时读写excel,所以我不能为我应用这个技巧。有没有人有任何建议。非常感谢你

【问题讨论】:

  • 并非如此,但这可能取决于文件中的其他内容。 25000 个单元格应该会很快加载,但文件中可能还有其他项目也会被加载。

标签: python excel openpyxl


【解决方案1】:

我遇到了同样的问题,发现虽然我最初的时间很合理(打开和关闭可能需要 2-3 秒),但这突然增加到一分钟多。我已经引入了日志记录,所以认为可能是原因,但是在注释掉之后,仍然有很长的延迟

我从 Excel 电子表格中复制了数据,然后保存到一个新的 Excel 电子表格中,该电子表格为我修复了它。似乎它一定已经以某种方式损坏了。

注意 - 将相同的文件名保存为另一个文件名不起作用,在本地驱动器上保存相同的文件名也是如此。

【讨论】:

    【解决方案2】:

    我不知道您需要对 Excel 文件做什么,但我会尝试将 .xmls 文件作为 Pandas DataFrame 打开:

    import pandas as pd
    df = pd.ExcelFile('file path')
    

    【讨论】:

    • Pandas Excel 支持受到 xlrd 支持的限制,这只是文件格式的一个子集。
    • 使用熊猫打开当然更快,但打开后我必须读取所有单元格(逐个单元格)并将 cmets 写入多个单元格的 excel(不是逐块或逐列)。熊猫可以吗?
    猜你喜欢
    • 2013-06-01
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    相关资源
    最近更新 更多