首页 > 解决方案 > 使用 win32com 更新链接,其中 excel 与多个源链接

问题描述

我正在使用 win32com.client 打开 Excel

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

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

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

“此工作簿包含一个或多个无法更新的链接。” & 选项是:“继续”和“编辑链接”)。

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

我想像单击“继续”一样继续,或者要抑制整个对话框,我找不到这样做的方法。

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

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')

有谁知道有效的解决方案?任何事情都会中断链接或继续。先感谢您

标签: pythonpywin32win32com

解决方案


excel.AskToUpdateLinks = False

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

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

推荐阅读