excel - 从命令行刷新 Excel 数据

标签 excel vba powerquery

我有一个带有 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/

相关文章:

c# - 使用 excelcnv.exe 将 xls 转换为 xlsm

string - 如何在 Excel 中将字符串转换为数字,反之亦然

powerbi - 从一个表获取值并根据其他列放入其他表 DAX/Power Query M

asp.net - 'Microsoft.Jet.OLEDB.4.0' 提供程序未在本地计算机上注册

excel - 除了为任何工作表运行的当前代码之外,用于在 excel 中排序的 VBA

excel - 一列的多个自定义日期格式?

VBA 模块命名约定

excel - VBA:如何根据 VBA 中的私钥生成带有 RS256 的签名?

java - 如何通过 java 从 Power Query 查询生成 excel 文件?

excel - 如何将总计行添加到 excel power 查询?