如何使用xlwings禁止显示“更新链接”警报

时间:2019-06-13 13:57:27

标签: python excel

我正在使用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文件中,代码继续进行并打印“完成”,而无需用户干预,但是在出现“更新链接”提示的Excel文件中,直到提示出现时,它才继续执行打印语句被用户关闭。

2 个答案:

答案 0 :(得分:1)

扩展您的第一次尝试-您没有在处理App实例,而是在尝试分配给xlwings.App类。

但是,似乎xlwings中的display_alerts 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)

答案 1 :(得分:0)

我相信xlwings中有一个实现可以避免现在更新链接消息。通过添加以下内容,我能够绕过这些警报

app.books.open(fname, update_links=False, read_only=True, ignore_read_only_recommended=True)

您可以在文档xlwings.Book.open(...)

中看到这些自变量