我正在使用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文件中,直到提示出现时,它才继续执行打印语句被用户关闭。
答案 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(...)
中看到这些自变量