用Python刷新Excel外部数据

2024-05-16 00:03:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个运行Python脚本的Excel文件。Excel文件有需要在运行Python脚本之前刷新的外部数据连接。我所指的功能如下:

Refresh External Data

我使用的是Python2.7,大多数Excel数据解析都依赖于Pandas。


Tags: 文件数据功能脚本pandasexcel所指
3条回答

由于这是第一个Google链接,所以添加这个作为答案-第一个答案中的代码起作用,但大小写不正确,应该是:

import win32com.client
import time

xlapp = win32com.client.DispatchEx("Excel.Application")
wb = xlapp.Workbooks.Open(<path_to_excel_workbook>)
wb.RefreshAll()
time.sleep(5)
wb.Save()
xlapp.Quit()

如果您在windows上,并且我相信您得到了屏幕截图,那么您可以使用win32com模块。它将允许您(从python)打开Excel,加载工作簿,刷新所有数据连接,然后退出。语法最终接近VBA。

我建议您通过pip(pip install pypiwin32)安装pypiwin32

import win32com.client

# Start an instance of Excel
xlapp = win32com.client.DispatchEx("Excel.Application")

# Open the workbook in said instance of Excel
wb = xlapp.workbooks.open(<path_to_excel_workbook>)

# Optional, e.g. if you want to debug
# xlapp.Visible = True

# Refresh all data connections.
wb.RefreshAll()
wb.Save()

# Quit
xlapp.Quit()

CalculateUntilAsyncQueriesDone()将保留程序并等待刷新完成。

xlapp = win32com.client.DispatchEx("Excel.Application")
wb = xlapp.Workbooks.Open(<path_to_excel_workbook>)
wb.RefreshAll()
xlapp.CalculateUntilAsyncQueriesDone()
wb.Save()
xlapp.Quit()

相关问题 更多 >