从命令行刷新 Excel 数据

问题描述 投票:0回答:2

我有一个 Excel 工作表,其中 PowerQuery 通过 ODBC 连接到 SAP 数据源。

通常我都是手动点击“全部刷新”来刷新数据。为了自动执行此操作,我编写了一个 Python 脚本来自动刷新工作表。它有一些问题。

有没有办法从命令行执行此“全部刷新”命令?

在Python中尝试的代码:

 xlapp = win32com.client.DispatchEx("Excel.Application")
 wb = xlapp.workbooks.open(File1.xlsx)
 wb.RefreshAll()
wb.SaveAs(File2.xlsx)
excel vba powerquery
2个回答
2
投票

您可以在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 以更新连接。


0
投票

我想为未来的访客添加一些额外的注释。

我最终使用了 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()

© www.soinside.com 2019 - 2024. All rights reserved.