从xlsx读取限制为65535行:openpyxl

时间:2018-01-11 05:58:32

标签: python django excel openpyxl

当我从包含超过五十万个条目的xlsx文件中读取时。 pyopenxl只读取65535行。

wb = load_workbook(filename=import_file, read_only=True)
ws = wb['Sheetname']
rows = ws.rows # yields upto 65K rows

令人困惑的是,我使用相同的包进行写入操作。我能够为xlsx文件写入一百万个条目。

wb = openpyxl.Workbook()
ws = wb.get_active_sheet()
ws.cell # Write operations here
wb.save(filename=file_path)

如果我能够使用相同的包进行读写,那将是很棒的。

1 个答案:

答案 0 :(得分:1)

这是openpyxl的已知问题,标记为 WONTFIX 。您可以阅读更多相关信息here

开发人员团队提供了解决此问题的方法,但提到OpenOffice / LibreOffice本身存在问题。

  

OpenOffice / LibreOffice中存在一个错误,它会创建标称尺寸最多为65536行的工作表。 openpyxl将此信息视为可靠(您可以使用ws.max_row进行检查,否则它必须解析整个文件以找到我们要避免的大小。您可以使用ws.calculate_dimension(force = True)强制重新计算,但最简单解决方案是使用iter_rows(),max_row为100000。