Python 为什么有些.xlsx文件使用openpyxl成功打开,而其他文件无法打开?
我使用的是Python 为什么有些.xlsx文件使用openpyxl成功打开,而其他文件无法打开?,python,excel,python-2.7,openpyxl,xlsx,Python,Excel,Python 2.7,Openpyxl,Xlsx,我使用的是python2.7&openpyxl==2.5.11 我想使用openpyxl读取.xlsx文件。最初我用从谷歌硬盘下载的文件进行测试,一切都很好 现在,我尝试加载使用Microsoft Excel生成的一些文件,但发现以下错误: 引发IOError(“文件不包含有效的工作簿部分”) 我试图打印一些变量并自己计算,但我对Excel文件缺乏更深入的了解,有些抽象层次我不能很快理解 下面是引发错误的相关代码段(excel.py): 如果相关的话,我在OSX和Ubuntu上都有问题 编辑
python2.7
&openpyxl==2.5.11
我想使用openpyxl
读取.xlsx
文件。最初我用从谷歌硬盘下载的文件进行测试,一切都很好
现在,我尝试加载使用Microsoft Excel生成的一些文件,但发现以下错误:
引发IOError(“文件不包含有效的工作簿部分”)
我试图打印一些变量并自己计算,但我对Excel文件缺乏更深入的了解,有些抽象层次我不能很快理解
下面是引发错误的相关代码段(excel.py
):
如果相关的话,我在OSX和Ubuntu上都有问题
编辑:
我无法用我自己生成的文件重现问题。我认为这个问题只能在旧文件中重现。有问题的人使用Excel 2008或更旧版本创建文件,所以这可能就是问题所在
提前感谢可能是因为您没有正确保存那些.xlsx文件,例如只需将文件后缀更改为xlsx即可 以下是一个适合我的解决方案: 将无法打开的文件重新保存到.xlsx,即使这些文件已经有.xlsx后缀
如果您不知道哪些文件需要重新保存,请从异常大的文件开始。是导致文件失败的文件扩展名.xls还是.xlsx?我会尝试在Excel中打开并重新保存有问题的文件,然后再次加载,以查看是否存在奇怪的/微妙的不兼容问题。这两个扩展名都失败。例外非常明显:这些文件可能不是有效的XLSX文件。我建议您提交一份带有示例文件的bug报告。@stovfl谢谢您的反馈,我差点忘了我们有一个抽象层,它允许我们打开
xls
文件。因此,它归结为打开xlsx
文件:)因此,请回答您的问题并删除任何xls
参考,以获得正确的标题。
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")