从命令行刷新Excel数据

3
我有一个使用PowerQuery连接到SAP数据源的Excel表格。
通常情况下,我手动点击“全部刷新”来刷新数据。为了自动化这个过程,我编写了一个Python脚本来自动刷新表格。但是它存在一些问题。
是否有一种方法可以从命令行执行“全部刷新”命令?
Python尝试的代码:
 xlapp = win32com.client.DispatchEx("Excel.Application")
 wb = xlapp.workbooks.open(File1.xlsx)
 wb.RefreshAll()
wb.SaveAs(File2.xlsx)

你可以在VBA中使用ActiveWorkbook.RefreshAll来刷新所有连接。你正在使用Python中的xlwings吗? - MGP
你应该展示你的代码,这样我们才能帮助你解决问题。此外,“它有一些问题”并不是一个有用的错误描述。 - Pᴇʜ
1
是的,请查看 xlwings。它是一个 Python 包。您可以使用以下代码刷新连接:import xlwings as xw app = xw.App() wb = xw.Book('文件路径') wb.api.RefreshAll() - MGP
1
@Pᴇʜ 添加了代码。 - RKh
@M.Getrost 请添加答案,这样我就可以尝试标记它。 - RKh
显示剩余3条评论
1个回答

2
你可以在Python中使用xlwings。它可能是Python中最好的Excel库。你的代码可能如下所示:
xlwings
import xlwings as xw

app = xw.App()

wb = xw.Book('pathToFile')
wb.api.RefreshAll()

最初的回答中提到了另一个选项,那就是使用VBScript。打开一个文本编辑器并复制下面的代码:
Dim ObjExcel, ObjWB
Set ObjExcel = CreateObject("excel.application")
Set ObjWB = ObjExcel.Workbooks.Open("pathToFile")
ObjWB.RefreshAll

Set ObjWB = Nothing
Set ObjExcel = Nothing

将文件保存为fileName.vbs 运行VBScript以更新连接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接