[Excel-Export] Excel-Export aus Python

Du hast eine Idee für ein Projekt?
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

[Excel-Export] Excel-Export aus Python

Beitragvon joerg » Freitag 30. August 2002, 13:06

Für Perl gibt es ein Modul namens Spreadsheet::WriteExcel, mit dem man aus Python direkt Excel-Dateien erstellen kann.

Ich habe zwar keine Zeit so ein Projekt hauptsächlich mitzugestalten, würde aber ein solches Modul sehr begrüßen. :P

Man könnte das Perl-Modul in Python nachbauen. Oder kennt jemand eine einfache Möglichkeit, Perl und Python irgendwie zu verheiraten?

Edit (Leonidas): Topic verändert und verschoben.
piddon
Gründer
Beiträge: 410
Registriert: Dienstag 30. Juli 2002, 18:03
Wohnort: Oestrich-Winkel
Kontaktdaten:

Beitragvon piddon » Freitag 30. August 2002, 13:11

Hmm, gute Frage. Scheinbar ist da noch nichts vorhanden, um PYthon in Perl einzubetten oder umgekehrt. PHP und Java ist ja... Seltsam ;)

Aber so ein Modul könnte ich auch gebrauchen. Schade dass Excell bzw. Microsoft ihr Dateiformat ständig wechselt, und nicht auf XML aufbaut, denn dann wäre es schön einfach. Aber hat nichts mit dem Thema zu tun.
irc: #python.de @ irc.freenode.net | python-wiki | python-forum FAQ
piddon
Gründer
Beiträge: 410
Registriert: Dienstag 30. Juli 2002, 18:03
Wohnort: Oestrich-Winkel
Kontaktdaten:

Beitragvon piddon » Freitag 30. August 2002, 13:14

Ich habe mal gestöbert (langeweile) und das hier gefunden:

http://www.greytrout.com/spreadscript.html

ABER kostet was.
irc: #python.de @ irc.freenode.net | python-wiki | python-forum FAQ
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

Beitragvon joerg » Sonntag 1. September 2002, 10:38

piddon hat geschrieben:Ich habe mal gestöbert (langeweile) und das hier gefunden:

http://www.greytrout.com/spreadscript.html

ABER kostet was.


Die Beschreibung klingt ziemlich gut. Nur bevorzuge ich eben doch freie Software. Aber gut zu wissen, daß es sowas prinzipiell gibt. Danke!
Gast

Re: Excel-Export aus Python

Beitragvon Gast » Sonntag 1. September 2002, 22:59

Warum macht Ihr euch das Leben so schwer??? Python hat ein sehr gutes COM Interface Modul <<win32com.client>>.
Ueber dieses Modul koennt Ihr sehr einfach und elegant Excel & co. ansteuern... :)
piddon
Gründer
Beiträge: 410
Registriert: Dienstag 30. Juli 2002, 18:03
Wohnort: Oestrich-Winkel
Kontaktdaten:

Beitragvon piddon » Montag 2. September 2002, 07:34

Diese Aussage ist richtig, nur nicht jeder verwendet Windows.
irc: #python.de @ irc.freenode.net | python-wiki | python-forum FAQ
Benutzeravatar
tabellar
User
Beiträge: 186
Registriert: Mittwoch 4. September 2002, 15:28

Beitragvon tabellar » Mittwoch 4. September 2002, 17:16

...Schade dass Excell bzw. Microsoft ihr Dateiformat ständig wechselt, und nicht auf XML aufbaut, denn dann wäre es schön einfach. Aber hat nichts mit dem Thema zu tun...

Es ergibt sich aber evtl. ein anderer Ansatz: Gibt es einen Konverter von XML
nach Excel??? So haetten wir zwei Fliegen mit einer Klappe erschlagen... :wink:
piddon
Gründer
Beiträge: 410
Registriert: Dienstag 30. Juli 2002, 18:03
Wohnort: Oestrich-Winkel
Kontaktdaten:

Beitragvon piddon » Mittwoch 4. September 2002, 17:25

Stimmt. eigentlich langt doch auch ein Kovertieren von XML in CSV. Daraus zu Excell ist nicht wirklich ein Problem. Jedoch wird es natürlich aufwendiger, wenn man noch charts und verknüpfungen/Berechnungn hat. Da sehe ich noch ein richtig grosses Problem.
irc: #python.de @ irc.freenode.net | python-wiki | python-forum FAQ
Benutzeravatar
tabellar
User
Beiträge: 186
Registriert: Mittwoch 4. September 2002, 15:28

Beitragvon tabellar » Mittwoch 4. September 2002, 18:33

piddon hat geschrieben:...Jedoch wird es natürlich aufwendiger, wenn man noch charts und verknüpfungen/Berechnungn hat. Da sehe ich noch ein richtig grosses Problem...


...irgendwie ein Perl Modul nachbauen gefaellt mir nicht....

Aber ich haette da eine lustige Idee:
Da ja COM und Excel hauptsaechlich auf Windows laufen :wink: , koennten wir ja das OpenOffice-Fomat ansteuern!!! Da sind wir Plattformunabhaengig und koennen den wirklich guten OpenOffice->Excel Konverter verwenden (da funktionieren auch Charts...). Ich bin in der Schnittstelle von OpenOffice nicht so drin, aber es kann glaube ich auch mit XML umgehen, wenn es nicht sogar
ganz darauf aufbaut...
piddon
Gründer
Beiträge: 410
Registriert: Dienstag 30. Juli 2002, 18:03
Wohnort: Oestrich-Winkel
Kontaktdaten:

Beitragvon piddon » Mittwoch 4. September 2002, 18:55

Ja, diese Idee hatte ich auch schonmal. Der Ansatz bei OpenOffice ist um einiges besser, denn das speichert, soweit ich informiert bin, in XML.

Convertieren kann es ja.

Auch ist man mit OpenOffice um einiges Plattformunabhängiger als mit MsOffice.

Ich werde mich mal in die Schnittstellen von OpenOffice einlesen. Das sollte doch eine machbare Hürde sein.
irc: #python.de @ irc.freenode.net | python-wiki | python-forum FAQ
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

Beitragvon joerg » Donnerstag 5. September 2002, 09:17

piddon hat geschrieben:Ja, diese Idee hatte ich auch schonmal. Der Ansatz bei OpenOffice ist um einiges besser, denn das speichert, soweit ich informiert bin, in XML.
...
Ich werde mich mal in die Schnittstellen von OpenOffice einlesen. Das sollte doch eine machbare Hürde sein.


Als Linuxer und OpenOffice-Anwender finde ich das natürlich gut, aber ein Excel-File kann man eben jedem in die Hand drücken, und für ein OpenOffice-Dokument braucht man OpenOffice, um es in ein MS-Format zu wandeln, oder hat Microsdoft da inzwischen funktionierende Import-Filter?

Zum OpenOffice-Format: Das sind ZIP-Files, die jeweils mehrere XML-Dateien enthalten. Eine mit den Daten, eine mit den Formatierungen ...

Das sollte mit dem zipfile-Modul und ein bißchen XML zu lösen sein...
tom_S

Beitragvon tom_S » Dienstag 24. September 2002, 21:45

Nun ja, ich kenne einige Leute, die mit nichts anderem als Excel etwas anfangen können (leider). Wenn ich denen etwas erzähle von CSV-Dateien, die sie ja recht problemlos in Excel laden könnten, sehe ich da nur ahnungslose Gesichter vor mir, gefolgt von einem halbstündigem Erklärungsversuch und dem anschließendem resignierendem Weg zurück zum Arbeitsplatz. Mit OpenOffice brauch ich da wohl gar nicht erst anfangen.
Und dabei geht es meist um sehr einfache Dinge: Excel-Tabellen - nicht mal Mappen - die zur Verfügung gestellt werden sollen. Keine komplizierten Verknüpfungen, keine Graphiken, schlichte Tabellen eben.

Ich suche auch schon seit einiger Zeit immer wieder nach einem Python-Tool, was mir die lästige Arbeit, ein CSV zu erstellen, daß in Excel zu laden, dann als Exel-File zu speichern einfach mal abnimmt, aber bisher auch ohne erfolg.

Ist blöd, daß man die fiesen Strategien von MS über komplizierte Umwege ausgleichen muß.
thomas
User
Beiträge: 1
Registriert: Mittwoch 16. Oktober 2002, 15:47

Mal HTML ausprobieren

Beitragvon thomas » Mittwoch 16. Oktober 2002, 15:51

Hallo!

Man kann Excel-Tabellen auch als HTML speichern. Dabei speichert Excel neben den eigentlichem HTML auch noch eine Menge zusätzlicher Daten bezüglich Formatierung und Formeln. Wenn man diese HTML-Dateien in .xls umbenennt, öffnet Excel diese auch problemlos. :D

So läßt sich problemlos ein (Pseudo-)Excel-Export realisieren, ohne dass der Anwender es merkt.

Schöne Grüße,
Thomas
cmkl
User
Beiträge: 1
Registriert: Freitag 15. November 2002, 12:30

Beitragvon cmkl » Freitag 15. November 2002, 13:36

Hallo,

Excel benutzt das sogenannte "biff" fileformat. Ich wusste bisher gar nicht
das es ein Python Modul gibt, das dieses Format erzeugen kann.
(besagtes http://www.greytrout.com/spreadscript.html)
Für perl gibt es schon länger ein solches Modul - es wurde einmal in
der i`X beschrieben. Der Vorteil ist, das hierbei man nicht auf Windows
und eine Excel Installation angewiesen ist. Geht also auch unter Unix.

Wenn man Windows und Excel auf seinem Rechner hat. kann man mit
Python über COM Excel fernsteuern und Sheets erzeugen, ändern,
speichern. Dazu braucht man win32com. Wer das nicht will kann auch
ein schlankes COM Modul verwenden: ctypes von T. Heller
(http://starship.python.net/crew/theller/ctypes.html)

Der Vorteil von ctypes ist der minimalistische Ansatz. Gerade mal eine
Handvoll files sind zu installieren. Die Installation geht von Hand auch
wenn man keine Administratorrechte hat (z.B. im Büro). Das habe ich
mit den Standard win32 Modulen noch nicht geschafft. ctypes ist
gewissermaßen der Nachfolger von calldll und ntypes (S. Rushing).
Man ist damit auch in der Lage beliebigen Code in beliebigen win32 dlls
auszuführen (und u. U. sein System an die Wand zu fahren)

Mich würde interessieren, ob andere schon Erfahrungen mit ctypes vs.
win23com gesammelt haben, insbesondere in Verbindung mit MS Office.

Carl
Benutzeravatar
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Beitragvon hans » Freitag 15. November 2002, 22:24

Nach anfänglichem Enthusiasmus scheint das ganze ja ein bisschen ins Stocken geraten zu sein. Habt Ihr die Lust verloren oder verliert Ihr euch in hunderten von Lösungsansätzen?

KISS
keep it stupid simple!

Wenn Ihr mich fragt, sollte man auf folgendes Ziel losmaschieren:
  • universelles, standardtisiertes Fileformat, welches nicht nur von Excel gelesen werden kann
  • es sollte möglich sein, Gestaltungselemente (Schriftart, Ausrichtung, etc.) zu übergeben.
  • es sollte ein unabhängiger Standard verwendet werden
  • eventuell eine Prüfroutine. mit der ermittelt werden kann, ob erzeugte Tabelle mit Programm abc Version xyz auch gelesen werden kann.
  • Behandlung lokaler Gegebenheiten (US 10,000.00 = EU 10.000,00) muß grundsätzlich machbar sein.

Selbst wenn man sich auf diese wenigen Grundfunktionen beschränkt, kann man sich noch immer genug verennen. Deshalb sollten Funktionen etwa in der Reihenfolge
  • Texte
  • Zahlen
  • Formatierungen
  • Formeln
  • Images
implementiert werden. Ich persönlich würde das ganze in XML machen.

Wenn das ein- oder andere Officeprogramm XML nicht direkt unterstützt, kann man ja auch den umgekehrten Weg gehen, d.h. man schreibe ein Script wie z. B. XML2XLS Die meisten Officeprogramme sind scriptfähig.

Bin mal gespannt auf eure Reaktion

Hans

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder