2016-11-30 43 views
2

私はPythonスクリプトを実行するExcelファイルを持っています。 Excelファイルには、Pythonスクリプトを実行する前にリフレッシュする必要のある外部データ接続があります。私が言及してる機能はここにある:私は、Python 2.7を使用していますし、Excelのデータ解析のほとんどのためのパンダに頼っていますExcelの外部データをPythonでリフレッシュ

Refresh External Data

+0

あなたの質問は?私はそれが "あなたはPythonからデータ接続をリフレッシュできますか?"と推測することができますが、あなたの投稿には欠落しています。 –

答えて

4

ウィンドウが開いていて、スクリーンショットがあると思われる場合は、win32comモジュールを使用できます。これは、あなたがPythonから - Excelを開き、ワークブックをロードし、すべてのデータ接続を更新してから終了することを可能にします。構文はVBAにかなり近くなってしまいます。

pypiwin32をpip(pip 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

関連する問題