Pandas Openpyxl 错误“<class 'openpyxl.styles.fills.Fill'>

Pandas Openpyxl error "<class 'openpyxl.styles.fills.Fill'>

我在加载从网站下载的 .xlsx 文件时遇到此错误

TypeError: expected "<class 'openpyxl.styles.fills.Fill'>

我在这里看到了一些解决方案,但他们告诉我手动重新保存文件,对于超过 10.000 个文件,这不是一个选项。

这是一个普通的.xlsx文件,没有任何公式或vba,只有数据。

是否有无需更改库版本的解决方案,我必须将 Pandas 和 XLRD 降级到 1.2.0 版才能使解决方案生效。由于我正在部署到服务器,因此更改版本可能会与我 运行.

的其他项目发生冲突
try:
     pd.read_excel("Espelho.xlsx",  engine='openpyxl')
except Exception as e:
     print(e)

这是文件: Espelho.xlsx

我在 github 上看到了另一个类似的查询,他们唯一的解决方案是使用 win32.com 重新保存或回滚 pandas 打开。因此,无需更改版本或单独修改文件,像这样的方法就可以解决问题。
提供的示例文件已使用此代码进行测试。
如果 xlsx 文件在打开时出现 expected 异常,则使用 xlwings 打开并以新名称保存并尝试再次打开文件,这应该第二次工作并允许您读取数据。

import xlwings as xw
import pandas as pd


path = 'Espelho.xlsx'
path2 = "renamed_" + path

while True:
    try:
        df = pd.read_excel(path, engine='openpyxl')
    except Exception as e:
        print("Failed to open workbook; error: ")
        print(e)
        wingsbook = xw.Book(path)
        wingsapp = xw.apps.active
        wingsbook.save(path2)
        wingsapp.quit()

        path = path2
    else:
        break

for col in df.columns:
    print(col)