使用 win32com 更新链接,其中 excel 与多个来源链接

update links using win32com where excel is linked with multiple sources

我正在使用 win32com.client 打开 Excel 和

excel = win32com.client.Dispatch("Excel.Application")

workbook = excel.Workbooks.Open(filename,UpdateLinks=False, ReadOnly=True)

有时这会生成带有以下文本的警报:

“此工作簿包含一个或多个 link 已更新。”& 选项为:“继续”和“编辑链接”)。

这会停止脚本,直到我手动处理对话框,这不是首选。

我想继续,就好像“继续”已经 单击,或抑制整个对话框,我找不到办法做到这一点。

搜索 Whosebug 论坛,我看到了以下建议:

excel.DisplayAlerts = False
excel.AskToUpdateLinks = False

我已经尝试了其中的每一个(在 excel 变量是 已分配),但无论是单独还是一起都没有达到预期的效果。

按照其他论坛的建议,我也尝试打开 excel 并保存,然后再次使用 python 重新打开,这也不起作用。

wb = xlApp.Workbooks.Open(Path to file,UpdateLinks = False)
ws = wb.Worksheets('XYZ')
wb.Close(SaveChanges=1)
excel.Visible = False
excel.ScreenUpdating = False 
excel.DisplayAlerts = False
excel.AskToUpdateLinks = False

wb = xlApp.Workbooks.Open(Path to file)
ws = wb.Worksheets('XYZ')

有人知道有效的解决方案吗?任何事情都会中断 link 或继续。 提前谢谢你

excel.AskToUpdateLinks = False

据我所知,上面关闭了提示并在文件打开时自动更新外部链接。尝试使用以下:

excel = win32com.client.Dispatch("Excel.Application")
excel.DisplayAlerts = False
workbook = excel.Workbooks.Open(Path to file,UpdateLinks=0)