我有一个带有 PowerQuery 的 Excel 工作表,通过 ODBC 连接到 SAP 数据源。
一般我都是手动点击“Refresh All”来刷新数据。为了自动执行此操作,我编写了一个 Python 脚本来自动刷新工作表。它有一些问题。
有没有办法从命令行执行这个 Refresh All 命令?
在 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-Editor 副本:
Dim ObjExcel, ObjWB
Set ObjExcel = CreateObject("excel.application")
Set ObjWB = ObjExcel.Workbooks.Open("pathToFile")
ObjWB.RefreshAll
Set ObjWB = Nothing
Set ObjExcel = Nothing
另存为文件名.vbs 运行 VBScript 以更新连接。
关于excel - 从命令行刷新 Excel 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57358786/