Seite 1 von 1

Python für VBA/Excel

Verfasst: Dienstag 30. November 2010, 11:55
von KingNothing
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?

Re: Python für VBA/Excel

Verfasst: Dienstag 30. November 2010, 17:02
von ms4py
Schau mal hier: http://www.python-excel.org/
Über COM ist das vermutlich nicht so elegant.

Re: Python für VBA/Excel

Verfasst: Mittwoch 1. Dezember 2010, 12:37
von mkesper
Und das csv-Modul sollte noch erwähnt werden, wenn du csv als Eingabe bekommst. Kann Kopfschmerzen ersparen. ;)

Re: Python für VBA/Excel

Verfasst: Mittwoch 1. Dezember 2010, 15:14
von KingNothing
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!

Re: Python für VBA/Excel

Verfasst: Mittwoch 1. Dezember 2010, 19:10
von DaMutz
du kannst auch eine Excel Vorlage mit Diagrammen erstellen und dann die Daten per Python einfügen? Oder sind die Diagramme nicht immer gleich?

Re: Python für VBA/Excel

Verfasst: Mittwoch 8. Dezember 2010, 10:22
von KingNothing
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.