我正在使用Python 2.7
和openpyxl==2.5.11
。
我想使用.xlsx
读取openpyxl
个文件。最初,我正在测试从Google云端硬盘下载的文件,并且一切正常。
现在,我尝试加载使用Microsoft Excel生成的某些文件,但是我看到此错误:
raise IOError("File contains no valid workbook part")
我试图自行打印一些变量并自行计算,但是我对Excel文件缺乏更深入的了解,并且有些层次的抽象我无法快速理解。
这是引发错误(excel.py
)的相关代码段:
def _find_workbook_part(package):
workbook_types = [XLTM, XLTX, XLSM, XLSX]
for ct in workbook_types:
part = package.find(ct)
if part:
return part
# some applications reassign the default for application/xml
defaults = set((p.ContentType for p in package.Default))
workbook_type = defaults & set(workbook_types)
if workbook_type:
return Override("/" + ARC_WORKBOOK, workbook_type.pop())
raise IOError("File contains no valid workbook part")
如果相关,我在OSX和Ubuntu上都遇到问题。
编辑: 我无法用自己生成的文件重现该问题。我认为只能使用较旧的文件才能再现该问题。遇到问题的人正在使用Excel 2008或更早版本来创建文件,所以也许是问题所在吗?
预先感谢
答案 0 :(得分:0)
可能是因为您没有正确保存.xlsx,例如只是将文件后缀更改为xlsx。
以下是对我有用的解决方案:
将无法打开的文件重新保存为.xlsx,即使这些文件已经具有.xlsx后缀。
如果您不知道需要重新保存哪些文件,请从尺寸异常大的文件开始。