2016-11-30 2 views
2

Ich habe eine Excel-Datei, die ich ein Python-Skript ausführen. Die Excel-Datei verfügt über externe Datenverbindungen, die aktualisiert werden müssen, bevor das Python-Skript ausgeführt wird. Die Funktionalität, die ich auf mich beziehen ist hier:Aktualisieren Sie externe Excel-Daten mit Python

Refresh External Data

Ich bin mit Python 2.7 und auf Pandas verlasse mich für die meisten der Excel-Daten-Analyse.

+0

Und Ihre Frage ist? Ich kann nur vermuten, es ist "können Sie die Datenverbindungen von Python aktualisieren", aber es fehlt in Ihrem Beitrag. –

Antwort

4

Wenn Sie auf Windows sind, und ich glaube, dass Sie den Screenshot erhalten, können Sie das Modul win32com verwenden. Es erlaubt Ihnen - von Python - Excel zu öffnen, eine Arbeitsmappe zu laden, alle Datenverbindungen zu aktualisieren und dann zu beenden. Die Syntax endet in der Nähe von VBA.

Ich schlage vor, Sie installieren pypiwin32 über 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

Danke für den Vorschlag - Ich habe diesen Ansatz früher versucht, aber leider bekomme ich eine "Dies wird eine ausstehende Datenaktualisierung abbrechen. Fortfahren?" Dialogfeld und nichts passiert. – mk8efz

+0

Haben Sie versucht, eine Datenaktualisierung von Excel abzuschließen und Ihren Computer neu zu starten? Dies sollte funktionieren –

+2

Versuchen Sie, ein wenig zu schlafen, bevor Sie 'xlapp.Quit()' aufrufen. Wie lange hängt davon ab, wie lange die Aktualisierung dauert. – cco

Verwandte Themen