我有一个 Excel 工作表,其中 PowerQuery 通过 ODBC 连接到 SAP 数据源。
通常我都是手动点击“全部刷新”来刷新数据。为了自动执行此操作,我编写了一个 Python 脚本来自动刷新工作表。它有一些问题。
有没有办法从命令行执行此“全部刷新”命令?
在Python中尝试的代码:
xlapp = win32com.client.DispatchEx("Excel.Application")
wb = xlapp.workbooks.open(File1.xlsx)
wb.RefreshAll()
wb.SaveAs(File2.xlsx)
您可以在Python中使用
xlwings
。它可能是 Python 中最好的 Excel 库。你的代码可能如下所示:
import xlwings as xw
app = xw.App()
wb = xw.Book('pathToFile')
wb.api.RefreshAll()
正如 PEH 提到的,另一种选择是使用 VBScript。在此代码中打开 txt 编辑器副本:
Dim ObjExcel, ObjWB
Set ObjExcel = CreateObject("excel.application")
Set ObjWB = ObjExcel.Workbooks.Open("pathToFile")
ObjWB.RefreshAll
Set ObjWB = Nothing
Set ObjExcel = Nothing
另存为文件名.vbs 运行 VBScript 以更新连接。
我想为未来的访客添加一些额外的注释。
我最终使用了 MGP 帖子中的上述内容,并添加了一些额外内容。
import xlwings as xw
file = '\\\\networkshare\\folder\\folder\\my excel file with spaces.xlsx'
app = xw.App()
wb = xw.Book(file)
wb.api.RefreshAll()
wb.api.Save()
wb.close()