Seite 1 von 1

Excel öffnen und manipulieren mit Python?!

Verfasst: Montag 24. Oktober 2016, 12:05
von optimum
Hallo alle zusammen,
ich bin relativ neu in der Python Welt und hab da ein Frage zu Excel Tabellen mit Python.

Problemstellung:
Ich hab eine Excel Datei mit mehreren Tabellen, in der ersten Tabelle trage ich Zahlen ein, die Zahlen werden mit der zweiten Tabelle berechnet und das Ergebnis wird in der dritten Tabelle angezeigt.

Ich hab mir zwar die Lib Pandas angeschaut und damit schon Excel Dateien eingelesen, aber das ist nicht das was ich möchte.

Frage:

Kann ich mit irgendeiner Python Lib eine Excel Datei aufmachen, Zahlen rein schreiben und das Ergebnis wieder auslesen. Ist das möglich?

Re: Excel öffnen und manipulieren mit Python?!

Verfasst: Montag 24. Oktober 2016, 12:28
von Sirius3
@optimum: Wenn man den Zelleninhalt neu berechnen will, müßte man die hinterlegten Formeln parsen und alle Excel-Formeln mit all ihren Eigenheiten nachprogrammieren. Soweit ich weiß, hat das noch niemand gemacht. Es gibt also zwei Möglichkeiten: in Python eine Excel-Tabelle schreiben und Excel die Werte berechnen lassen, oder die Formeln selbst in Python schreiben und nicht mit Excel-Formeln rechnen.

Re: Excel öffnen und manipulieren mit Python?!

Verfasst: Montag 24. Oktober 2016, 12:37
von optimum
Sirius3 hat geschrieben:@optimum: Wenn man den Zelleninhalt neu berechnen will, müßte man die hinterlegten Formeln parsen und alle Excel-Formeln mit all ihren Eigenheiten nachprogrammieren. Soweit ich weiß, hat das noch niemand gemacht. Es gibt also zwei Möglichkeiten: in Python eine Excel-Tabelle schreiben und Excel die Werte berechnen lassen, oder die Formeln selbst in Python schreiben und nicht mit Excel-Formeln rechnen.
Danke für die schnelle Antwort!

"Python eine Excel-Tabelle schreiben und Excel die Werte berechnen lassen"

Also die gewünschten Werte in eine Excel Tabelle schreiben und dann Excel anstoßen das die Berechnung stadt finden soll?! Das geht?

Re: Excel öffnen und manipulieren mit Python?!

Verfasst: Montag 24. Oktober 2016, 13:22
von Sirius3
@optimum: Excel rechnet normalerweise automatisch (es sei denn, man schaltet das explizit ab) beim Öffnen einer Datei alle Zellen neu.

Re: Excel öffnen und manipulieren mit Python?!

Verfasst: Montag 24. Oktober 2016, 13:53
von optimum
Sirius3 hat geschrieben:@optimum: Excel rechnet normalerweise automatisch (es sei denn, man schaltet das explizit ab) beim Öffnen einer Datei alle Zellen neu.
Ach so meinst du das! Einfach die Werte in die Excel Tabelle schreiben und beim öffnen der Tabelle werden die Werte berechnet und angezeigt?

Wie kann ich den mit Python die Tabelle öffnen!?

Die Excel Tabelle soll auf den Server liegen. Die neuen Werte werden via Smartphone gesendet, das Ergebnis soll zurück gesendet werden.

Re: Excel öffnen und manipulieren mit Python?!

Verfasst: Montag 24. Oktober 2016, 14:05
von Sirius3
@optimum: nicht mit Python, mit Excel. Kannst Du mal ausführlicher beschreiben, was Du eigentlich machen willst?

Re: Excel öffnen und manipulieren mit Python?!

Verfasst: Montag 24. Oktober 2016, 14:19
von optimum
Ich möchte am Smartphone Werte eingeben, die Werte werden in einer json Datei gepackt und an einen Server geschickt, dann soll ein Script die werde in die Excel Datei packen. Und das Ergebnis soll zurück an das Smartphone gesendet werden.

Smartphone: Android
Server: Ubuntu mit Apache2


Ja das ist halt blöd das die ganze Berechnung und die Daten in einer Excel sind. :(

Re: Excel öffnen und manipulieren mit Python?!

Verfasst: Montag 24. Oktober 2016, 14:36
von Sirius3
@optimum: dann bliebe ja nur der Weg, das ganze per LibreOffice zu berechnen. Oder Excel wegschmeißen und alles mit Python berechen. Was hindert Dich daran?

Re: Excel öffnen und manipulieren mit Python?!

Verfasst: Montag 24. Oktober 2016, 16:26
von noisefloor
Hallo,

wie Sirius3 schon sagt: der Ansatz ist zum scheitern verurteilt.

Schon alleine, auf einem Linux-Server zum Speichern der Daten ein (Windows-) Datenformat zu verwenden, was keine Anwendung außer Excel unter Windows sicher und fehlerfrei öffnen kann, ist grundlegend falsch.

Außerdem macht es hier sehr viel Sinn, Datenspeicherung und Ergebnisdarstellung zu trennen. Zur Datenspeicherung bietet sich hier z.B. eine Datenbank an.

Und wenn du nicht einen sehr guten Grund hast, dass du zwingend auf deinem Android Smartphone eine Excel-Datei brauchst (der Grund würde mich dann mal interessieren :-) ), dann würde ich das Ergebnis eher als z.B. PDF senden.

BTW: wie willst du die Datei eigentlich ans Smartphone senden? Wie generierst und schickst du die JSON-Daten auf dem Smartphone?

Gruß, noisefloor

Re: Excel öffnen und manipulieren mit Python?!

Verfasst: Mittwoch 26. Oktober 2016, 12:01
von optimum
Hallo noisefloor, erstmal danke für deinen Beitrag :)

wie Sirius3 schon sagt: der Ansatz ist zum scheitern verurteilt.
Naja ich hab mir geholft das ich mir damit viel arbeit sparen kann. Dann muss ich das ganze wohl selbst machen :)

Außerdem macht es hier sehr viel Sinn, Datenspeicherung und Ergebnisdarstellung zu trennen. Zur Datenspeicherung bietet sich hier z.B. eine Datenbank an.
Ich würde auch ein DB bevorzugen allein schon wegen der Handhabung und der Performenz. Aber die Messdaten werden in eine Excel Tabelle geschrieben, warum man das macht kann ich auch nicht verstehen. Dann hat sich ein Stunden hingesetzt und das ganz auch in Excel berechnen lassen.
Und wenn du nicht einen sehr guten Grund hast, dass du zwingend auf deinem Android Smartphone eine Excel-Datei brauchst (der Grund würde mich dann mal interessieren :-) ), dann würde ich das Ergebnis eher als z.B. PDF senden.
Ich Brauche keine Excel Datei auf dem Smartphone, da brauche ich nur die das Ergenis der Berechnung, das ganze wird dann Visualiesiert.
wie willst du die Datei eigentlich ans Smartphone senden?
Da möchte ich keine Datei ans Smartphone sende, sondern eine JSON Datei mit den Ergbnissen(Werten: float zahlen).

Wie generierst und schickst du die JSON-Daten auf dem Smartphone?
Naja auf den Smartphone erstelle ich ein Json Obejkt und mit put kann ich dann die eingebenen Werte hinzufügen, das ganze werschicken ich dann als eine GET/POST anfragen an den Webserver der dann das ganze auspackt und die Berechnung anstoßen soll.

Re: Excel öffnen und manipulieren mit Python?!

Verfasst: Mittwoch 26. Oktober 2016, 13:22
von Sirius3
@optimum: es kommt halt drauf an, was da wirklich berechnet wird. Normalerweise sollte das sehr einfach sein, in Python nachzuprogrammieren. Gegen das Einlesen von Messdaten aus Excel spricht ja erstmal nichts, das hast Du ja anscheinend per Panda schon gemacht.