我正在自动化一个Excel文件,它链接到某些.csv文件。这些.csv文件是从SAS代码创建的,每季度运行一次。创建的文件相应地有时间戳,例如XYZ_201603.csv和XYZ_201606.csv等。
我需要更新Excel文件上的链接,以便它自动更改指向下一季度文件的链接。我尝试使用Python win32com.client完成此操作,代码如下所示
from win32com import Dispatch
xl_app = Dispatch("Excel.Application")
xl_app.Visible = True
xl_app.DisplayAlerts = False
wb = xl_app.workbooks.open(r"C:\Users\XYZ\Desktop\Test\Summary.xlsx")
xl_app.AskToUpdateLinks = False
try:
wb.UpdateLink(Name=r"C:\Users\XYZ\Desktop\Test\XYZ_201606.csv")
except Exception as e:
print(e)
finally:
wb.Close(True)
wb = None
return True
xl_app.Quit()
xl = None
每当我运行此程序时,都会收到以下错误
(-2147352567,'Exception occured.',(0,'Microsoft Excel','UpdateLink method of
Workbook class failed','xlmain11.chm',0,-2146827284),None)
有人能告诉我这里出了什么问题吗?另外,如果我有多个链接,我如何知道哪个链接需要更改为什么?我能传递更新数据集的目录字典吗
代码和方法取自堆栈溢出问题的答案
使用Python更新Excel电子表格中的链接
2条答案
按热度按时间tvokkenx1#
如果你回顾一下Microsoft Documentation,看起来
UpdateLink
方法可以在没有任何参数的情况下被调用。因此,这个程序应该可以工作:gfttwv5a2#
我不确定我的解决方案是否能解决您的问题,但我遇到了同样的问题,我改用了LinkSources()和ChangeLink()
希望能有所帮助!