【发布时间】:2017-09-26 19:52:16
【问题描述】:
我正在自动化链接到某些 .csv 文件的 Excel 文件。 这些 .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)
谁能告诉我这里出了什么问题。另外,如果我有多个链接,我如何判断哪个链接需要更改为什么?我可以传递更新数据集目录的字典吗
代码和方法取自 Stack Overflow 上的这个答案
【问题讨论】:
-
看到我的回答被引用很有趣!根据docs,链接源应该是 MS Excel 链接。考虑将 csv 数据导入工作簿或将 csv 数据保存为 Excel 电子表格。记住 csvs 是文本文件。
-
嗨冻糕。我试过这样做,但我得到了同样的错误!