[Python-de] VBA oder Python (via win32com o.ä.) besser für Excel-File Operationen?

04/01/2013 - 12:52 von Yu-Fang Helena Wang | Report spam

Hallo Experten-Forum,

ich müsste in nàchster Zeit einiges mit Excel-Files machen. Da würde sich
VBA anbieten, wenn man MS- und windows-nah ist. Ist jetzt nur bedingt der
Fall. Ich finde Python netter, aber wichtig ist, dass ich mit dem Tool
meiner Wahl _alles_ erledigt bekomme, und nicht nur eine Teilaufgabe. Lt.
Google gibt es folgende Optionen:

1) Python über Modul win32com (geht das mit Python 3.3?)
2) Python-Module xlrd, xswt von python-excel.org
3) VBA.

Die Aufgaben gehen so in diese Richtung:
- nur Spalten mit bestimmten Namen aus einer vorgegebenen Tabelle
extrahieren
- Spaltennamen (1. /oberster Eintrag) farblich markieren

Komplizierter sollte das hier werden:

- die Inhalte einer neuen Tabelle mit einer alten Tabelle via Gleichheit
eines bestimmten Namens abgleichen, also: guck in Spalte A beider Tabellen
nach Eintràgen, die in beiden Tabellen in Spalte A vorkommen, und übernimm
jeweils bestimmte Zelleninhalte der Eintràge (wirf andre dafür weg). Wenn
z.B. in beiden A-Spalten der alten und neuen Tabelle der Wert "123"
auftaucht, soll der Zelleninhalt "Kommentar" der alten Tabelle behalten
werden, aber bestimmte andere Spaltenwerte der neuen Tabelle sollen die
alten dennoch überschreiben.

In welcher Sprache macht man das am komfortabelsten, hat da einer von euch
Erfahrung? Ich frage mich insbesondere, ob die Module xlrd, xlwt nicht von
win32com subsumiert werden bzw. ob letzteres nicht eh schon
leistungsfàhiger ist?

Ich verwende hier auf dem Arbeits-Notebook Windows 7 Enterprise und hab mir
vorgestern Python3.3. installiert. VBA ist ja in Excel2007 (das ist
installiert) ja auch schon inkludiert.

Herzlichen Dank vorab für eure Antworten. Wird mir viel Ausprobieren
ersparen, vermutlich.

Grüße

Aigredouce alias Sweetsour


<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div><div>Hallo Experten-Forum,<br><br></div>ich müsste in nàchster Zeit einiges mit Excel-Files machen. Da würde sich VBA anbieten, wenn man MS- und windows-nah ist. Ist jetzt nur bedingt der Fall. Ich finde Python netter, aber wichtig ist, dass ich mit dem Tool meiner Wahl _alles_ erledigt bekomme, und nicht nur eine Teilaufgabe. Lt. Google gibt es folgende Optionen:<br>
</div><br>1) Python über Modul win32com (geht das mit Python 3.3?)<br></div>2) Python-Module xlrd, xswt von <a href="http://python-excel.org">py...;/div>3) VBA.<br><br></div>Die Aufgaben gehen so in diese Richtung:<br>
</div>- nur Spalten mit bestimmten Namen aus einer vorgegebenen Tabelle extrahieren<br></div>- Spaltennamen (1. /oberster Eintrag) farblich markieren<br><br></div>Komplizierter sollte das hier werden:<br><br></div>- die Inhalte einer neuen Tabelle mit einer alten Tabelle via Gleichheit eines bestimmten Namens abgleichen, also: guck in Spalte A beider Tabellen nach Eintràgen, die in beiden Tabellen in Spalte A vorkommen, und übernimm jeweils bestimmte Zelleninhalte der Eintràge (wirf andre dafür weg). Wenn z.B. in beiden A-Spalten der alten und neuen Tabelle der Wert &quot;123&quot; auftaucht, soll der Zelleninhalt &quot;Kommentar&quot; der alten Tabelle behalten werden, aber bestimmte andere Spaltenwerte der neuen Tabelle sollen die alten dennoch überschreiben.<br>
<br></div>In welcher Sprache macht man das am komfortabelsten, hat da einer von euch Erfahrung? Ich frage mich insbesondere, ob die Module xlrd, xlwt nicht von win32com subsumiert werden bzw. ob letzteres nicht eh schon leistungsfàhiger ist? <br>
<br></div>Ich verwende hier auf dem Arbeits-Notebook Windows 7 Enterprise und hab mir vorgestern Python3.3. installiert. VBA ist ja in Excel2007 (das ist installiert) ja auch schon inkludiert.<br><br></div>Herzlichen Dank vorab für eure Antworten. Wird mir viel Ausprobieren ersparen, vermutlich.<br>
<br></div>Grüße<br><br></div>Aigredouce alias Sweetsour<br><div><div><br><div><br><div><div><div><div><div><br><div><div><div><br></div></div></div></div></div></div></div></div></div></div></div></div>

 

Lesen sie die antworten

#1 Wolfgang Keller
04/01/2013 - 21:52 | Warnen spam
ich müsste in nàchster Zeit einiges mit Excel-Files machen. Da würde
sich VBA anbieten, wenn man MS- und windows-nah ist. Ist jetzt nur
bedingt der Fall. Ich finde Python netter, aber wichtig ist, dass ich
mit dem Tool meiner Wahl _alles_ erledigt bekomme, und nicht nur eine
Teilaufgabe.



VBA ist für "Teilaufgaben" außerhalb der MS-Welt naturgemàß unbrauchbar.
D.h. wenn Du z.B. aus Excel etwas "herausziehen" und extern
weiterverarbeiten willst, sitzt Du mit VBA auf dem Trockenen.

U.a. aus genau diesem Grund habe ich auch für MS-Produkte für Skripte
immer nur Python per COM benutzt und VBA gar nicht erst gelernt.

Darüber hinaus hat man in VBA keine interaktive Kommandozeile. Die
genau das ist, was man zum Skriptschreiben nunmal braucht.

MfG,

Wolfgang

Ähnliche fragen