如何修复已被 openpyxl 损坏的工作簿?

How to fix a workbook that has been corrupted by openpyxl?

我正在使用 openpyxl 对文件进行更改然后保存。

在习惯于此的行中,给我带来麻烦的是:

wb = openpyxl.load_workbook(filename=sheet_loc, read_only=False,keep_vba=True)

我知道“keep_vba”是一个非常危险的参数,因为如果在保存 .xlsx 文件时将其设为 True,文件将会损坏。反之亦然。

现在,这正是发生在我身上的事情。我有一个 .xlsx 文件,我写了“keep_vba=True”,所以工作簿已损坏。这是我尝试打开它时收到的信息:

我的问题是:有什么办法可以解决这个问题吗?要恢复此 sheet ?我试过“打开并修复”按钮,但它没有用,它只是给了我上面说的同样的错误。

我遇到了同样的问题,今天得到了解决方案。

澄清一下,你在这里用 openpyxl 所做的只是为这个工作簿“打开”vba,但是由于工作簿仍然是一个 .xlsx 文件,它不支持这种事情.

要恢复此文件,您只需将文件类型更改为 .xlsm,您可以在 windows 上执行此操作,只需将其从“workbook.xlsx”重命名为“workbook.xlsm".