当我从包含超过五十万个条目的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)
如果我能够使用相同的包进行读写,那将是很棒的。
答案 0 :(得分:1)
这是openpyxl的已知问题,标记为 WONTFIX 。您可以阅读更多相关信息here。
开发人员团队提供了解决此问题的方法,但提到OpenOffice / LibreOffice本身存在问题。
OpenOffice / LibreOffice中存在一个错误,它会创建标称尺寸最多为65536行的工作表。 openpyxl将此信息视为可靠(您可以使用ws.max_row进行检查,否则它必须解析整个文件以找到我们要避免的大小。您可以使用ws.calculate_dimension(force = True)强制重新计算,但最简单解决方案是使用iter_rows(),max_row为100000。