excel 为什么有些.xlsx文件可以用openpyxl成功打开,但有些不能打开?

8yoxcaq7  于 2023-11-20  发布在  其他
关注(0)|答案(2)|浏览(114)

我使用Python 2.7openpyxl==2.5.11
我想使用openpyxl读取.xlsx文件。最初我是用从Google Drive下载的文件进行测试,一切都很好。
现在,我试图加载一些文件生成的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或旧版本创建文件,所以也许这就是问题所在?

Thanks in advance

csga3l58

csga3l581#

这对我很有效

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

字符串
答案来源:Using Pandas with XLSB File

wgeznvg7

wgeznvg72#

可能是因为你没有保存那些.xlsx正确,如简单地改变文件后缀为xlsx。
这里有一个解决方案,为我工作:
将无法打开的文件重新保存为.xlsx,即使这些文件已经有.xlsx后缀。
如果你不知道哪些文件需要重新保存,开始与不寻常的大尺寸的文件.

相关问题