2016-11-30 906 views
2

我有一個運行Python腳本的Excel文件。 Excel文件具有需要在Python腳本運行之前刷新的外部數據連接。我指的功能是在這裏:使用Python刷新Excel外部數據

Refresh External Data

我使用Python 2.7和我依靠大熊貓大多數Excel數據解析。

+0

而你的問題是?我只能猜測它是「你能刷新從python的數據連接」,但它從你的帖子中缺少。 –

回答

4

如果您使用的是windows,並且我相信您獲得了屏幕截圖,則可以使用win32com模塊。它將允許你 - 從python - 打開Excel,加載工作簿,刷新所有數據連接,然後退出。語法最終與VBA非常接近。

我建議你通過點安裝pypiwin32pip install 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() 
+1

感謝您的建議 - 我早些時候嘗試了這種方法,但不幸的是我收到了「這將取消未完成的數據刷新,繼續?」對話框並沒有任何反應。 – mk8efz

+0

您是否嘗試過從Excel中完成數據刷新,然後重新啓動計算機?這應該工作 –

+2

在調用'xlapp.Quit()'之前嘗試睡覺一下。刷新需要多長時間取決於運行時間。 – cco