为什么某些.xlsx文件可以用openpyxl成功打开,而其他文件却无法打开



我正在使用Python 2.7&CCD_ 2。

我想使用openpyxl读取.xlsx文件。最初,我用从谷歌硬盘下载的文件进行测试,一切都很好。

现在,我试图加载一些用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或旧版本创建文件,所以这可能是问题所在?

提前感谢

这对我有效

df = pd.read_excel("Set.xlsb", sheet_name='Dataset', engine='pyxlsb')

这里的答案值得称赞:使用带有XLSB文件的Pandas

可能是因为您没有正确保存这些.xlsx,比如简单地将文件后缀更改为xlsx。

这里有一个适合我的解决方案:

将无法打开的文件重新保存到.xlsx,即使这些文件已经有.xlsx后缀。

如果您不知道哪些文件需要重新保存,请从大小异常大的文件开始。

相关内容

最新更新