为什么有些.xlsx文件可以通过openpyxl成功打开,而另一些无法打开?

时间:2018-11-22 01:11:40

标签: python excel python-2.7 openpyxl xlsx

我正在使用Python 2.7openpyxl==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或更早版本来创建文件,所以也许是问题所在吗?

预先感谢

1 个答案:

答案 0 :(得分:0)

可能是因为您没有正确保存.xlsx,例如只是将文件后缀更改为xlsx。

以下是对我有用的解决方案:

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

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