Seite 1 von 1

Datenexport xlsx via Pandas

Verfasst: Dienstag 14. Juli 2020, 14:28
von B00STER
Hallo Zusammen,

ich stehe vor folgender Problemstellung:


ich habe ein Programm, welches Werte berechnet.

Am Ende möchte ich die berechneten Werte in eine Exceldatei (xlsx) exportieren. Diese Datei soll erstellt werden, falls nicht vorhanden, ansonsten fortgeschrieben werden.

Die Exceldatei soll also automatisch erstellt werden, wenn das Programm zum ersten Mal durchläuft.
Wenn man es schließt und neu startet, soll die Datei mit der Tabelle ergänzt werden, nicht überschrieben.

Die Tabelle soll dann in etwa so aussehen:
Bei jedem durchlauf des Programmes, kommt eine "Anfragenzeile" dazu.

Anfragen Kriterium1 Kriterium2 Kriterium3 Kriterium4
Anfrage1 wert1 wert2 wert3 wert4
Anfrage2
Anfrage3
Anfrage4
Anfrage5
Anfrage6

Kann hier evtl. jemand weiterhelfen?

Grüße

Re: Datenexport xlsx via Pandas

Verfasst: Dienstag 14. Juli 2020, 17:16
von sparrow
Die Dokumentation hat direkt ein Beispiel für dein Problem.

Re: Datenexport xlsx via Pandas

Verfasst: Mittwoch 26. August 2020, 19:38
von tony_pythony
xls(x) schreiben ist auch mit pandas ein PITA. Leider.

Anderer Ansatz:

Ich weiss aus Erfahrung, dass Excel csv Dateien wie xls Dateien behandelt, nur ohne Meta-Informationen. Es ist halt eine Text-datei.

Aus deiner beschriebenen Anforderung, muss die Datei
1. erstellt werden,
2. aktualisiert werden

da stellt sich die Frage, wird die (neu) erstellte xls(x) Datei in Excel um Excel-spezifische Funktionen erweitert? Müssen diese erhalten bleiben bei aktualisieren der Datei bzw hinzufügen neuer Werte? -> pandas oder andere xls-writer:
- xlwings
- xlwt

Falls die Excel-spezifischen Funktionen irrelevant für deine Anforderung sind, wirds easy peasy:
- definiere (ziel)verzeichnis
- öffne datei mit python's open() im modus -a (append?)
- schreibe das was du möchtest getrennt mit kommas
- speichere die datei mit write()
- schliesse die datei

das sind pi*daumen 7-20 zeilen code, je nach Ausdrucksfähigkeit - wenn überhaupt.
Wenn du nicht unbedingt eine echte xls(x) benötigst, kannst diesen Ansatz mal durchchecken