Python für VBA/Excel

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
KingNothing
User
Beiträge: 9
Registriert: Dienstag 30. November 2010, 11:49

Hallo,
ich muss im Moment einige Auswertungen von CSV Dateien realisieren, wobei das Endprodukt eine Excel Tabelle mit Diagrammen sein soll (aus Flexibilätsgründen). Ich habe auch schon einiges mit VBA realisert, nur stört mich das fehlende OOP und das fehlen von einfachen Datentypen wie Listen und Dictionarys.

Daher wollte ich gerne Python verwenden, hat jemand schon mal praktische Erfahrungen mit Python und Excel (win32com?)gesammelt?
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Schau mal hier: http://www.python-excel.org/
Über COM ist das vermutlich nicht so elegant.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Und das csv-Modul sollte noch erwähnt werden, wenn du csv als Eingabe bekommst. Kann Kopfschmerzen ersparen. ;)
KingNothing
User
Beiträge: 9
Registriert: Dienstag 30. November 2010, 11:49

Hab mal ein paar Versuche gemacht, wie vermutet ist COM nicht so zuverlässig. Gestern gings noch und heute kommen dann aussagekräftige Fehler wie

Code: Alles auswählen

raise pythoncom.com_error, details
pywintypes.com_error: (-2147352567, 'Ausnahmefehler aufgetreten.', (0, None, Non
e, None, 0, -2146827284), None)
xlwt scheint da ja schon wesentlich besser zu sein, und ist natürlich auch um ein vielfaches schneller. Leider benötige ich aber auch Diagramme in dem Ergebnis-Sheet.
Das einzige Workaround was mir hierzu eingefällt: Datei mit xlwt schreiben, danach in Excel öffnen und per COM die Diagramme erzeugen....

Falls jemand eine bessere/andere Idee hat, immer her damit!
Benutzeravatar
DaMutz
User
Beiträge: 202
Registriert: Freitag 31. Oktober 2008, 17:25

du kannst auch eine Excel Vorlage mit Diagrammen erstellen und dann die Daten per Python einfügen? Oder sind die Diagramme nicht immer gleich?
KingNothing
User
Beiträge: 9
Registriert: Dienstag 30. November 2010, 11:49

DaMutz hat geschrieben:du kannst auch eine Excel Vorlage mit Diagrammen erstellen und dann die Daten per Python einfügen? Oder sind die Diagramme nicht immer gleich?
Gute Idee!
(Gibt es denn auch mit xlrt/xlwrt die möglichkeit eine Datei mit Diagrammen zu bearbeiten? Das wäre mir am liebsten, dann wäre ich diesen ganzen COM-Kram los.)

Edit: xlutils kann zwar vorhandene Dateien bearbeiten, entfernt aber dabei die Diagramme. Deswegen gehts leider nicht. Bleibt in meinen Augen nur die Lösung das über COM nachzuholen.
Antworten