我正在使用xlwings api与Python中的Excel文件交互。我正在与之交互的一些Excel文件具有旧链接,当文件打开时会出现提示,询问用户是否要更新链接。这会导致代码无限期地挂在打开书本的行上,直到用户关闭此提示。是否有方法修改Excel文件的设置以使此提示不会出现,或在不打开实际文件的情况下自动取消提示?
我试过使用xlwings方法:

xlwings.App.display_alerts = False

以取消提示,但据我所知,这只能在Excel实例打开后运行。有些Excel api不需要打开文件就可以读取xlrd之类的数据,但它们不太方便读取和复制大量数据(多张/整张数据表)。
以下代码演示了该问题:
import xlwings as xw

wb = xw.Book(r'C:\Path\To\File\Filename')

print('Done')

在普通的Excel文件中,代码在不需要用户干预的情况下继续运行并打印“Done”,但是在出现“update links”提示的Excel文件中,在用户取消该提示之前,代码不会继续运行print语句。

最佳答案

扩展您的第一次尝试——您没有处理应用程序实例,而是试图分配给xlwings.App类。
但是,似乎在display_alerts中的xlwings doesn't successfully suppress this alert,请尝试以下操作:

import xlwings as xw
app = xw.App(add_book=False)
app.display_alerts = False
wb = app.books.api.Open(fullpath, UpdateLinks=False)

10-06 01:44