BlackJack hat geschrieben:@lunar: Hast Du Erfahrung mit
xlrd oder warum ist COM der einzig praktikable Weg?
Nein, ich kannte die Bibliothek einfach nur nicht. Als Linuxer und überzeugter Anhänger freier Software hat man halt nicht viel mit Excel zu tun
jens hat geschrieben:Da wir schon mal dabei sind... Wie sieht es mit OpenOffice aus? Die Excel Dateien in OO laden und dann irgendwie in Python laden, aber wie?
OpenOffice kann Excel laden, und es gibt UNO-Bindings für Python. Theoretisch steht dem also nichts im Weg, praktisch begegnet man sehr schnell der UNO-API, gegen die COM wie der siebte Himmel aussieht.
Die UNO-API stützt sich auf die selben Design-Prinzipien wie CORBA. So verwendet UNO ebenfalls IDL als Definitionsprache für Schnittstellen. In der API schlägt sich das schon so nieder, dass jede konkrete Klasse eine gleichwertige abstrakte Schnittstelle hat, auch wenn es nur eine einzige konkrete Implementation dieser Schnittstelle gibt. Außerdem entwickelt UNO komplizierteste Vererbungshierarchien. Dadurch ist die API extrem kompliziert, weitaus mehr, als der Notwendigkeit angemessen wäre. In Verbindung mit einer für Python-Entwickler ziemlich schlechten Dokumentation ist das tödlich. Diese Dokumentation ist eine genaue Repräsentation des UNO-Objektbaums, inklusive aller Schnittstellen. Diese API lässt sich aber natürlich prinzipbedingt nicht vollständig auf Python übertragen, so dass man vor der undankbaren Aufgabe steht, sich aus geschätzten 1000 Klassen die 100 rauszusuchen, mit denen man tatsächlich zu tun haben könnte.
Das es besser geht, zeigt kross, die neue Skripting-Engine von KOffice. KSpread mit Python anzusteuern, ist vom Standpunkt der API betrachtet ein reines Vergnügen. Allerdings war kross vor einem halben Jahr, als ich es getestet habe, reichlich unausgereift, was sich desöfteren in gewissen Merkwürdigkeiten gezeigt hat. Außerdem sind die Excel-Konverter von KOffice bei weitem nicht so gut wie die von OpenOffice.