Seite 1 von 1

Python und import

Verfasst: Do, 31.05.2012 10:00
von HansMaulwurf
Hallo :)

ich versuche mich gerade in Python und OOo. Der Grund dafür: OOo-Basic ist ab einer bestimmten Größe einer Tabelle extrem langsam (da ich z.T. jede Zelle auslesen muss). Deshalb war meine Idee, dass ich im Prinzip alles über Python bearbeite und auslese und erst zum Schluss die fertigen Daten (und am besten schon formatiert mit Rahmen, Hintergrund, Farben, etc.) an OOo übergebe und es abspeichere.

Mit

Code: Alles auswählen

from com.sun.star.beans import PropertyValue
kann man ja schön PropertyValue importieren und benutzen. Nun dachte ich, kann ich das gleiche mit

Code: Alles auswählen

from com.sun.star.sheet import Spreadsheet
machen. Um dann mehr oder weniger das Tabellenblatt in Python zu erstellen und zu formatieren. Dem ist aber nicht so, da es das Objekt so entweder nicht gibt oder ich mach was falsch? ;)

Ist es überhaupt möglich, so wie ich mir das denke, die OOo-Objekte mir zu kopieren/dublizieren? Ich möchte nicht ständig alles über uno an OOo schicken, denn dann wär ich ja auch nicht schneller.

Ich hoffe ihr versteht was ich meine ;)

Gruß, Hans

Re: Python und import

Verfasst: Do, 31.05.2012 11:26
von Karolus
Hallo
Eine 'andere' Scriptsprache wird dir vmtl. keinen grossen Zeitgewinn bringen solange du prinzipiell die gleichen Methoden zum Auslesen und einlesen von Daten benutzt.
z.B .getCellByPosition( colindex, rowindex).setValue in einer geschachtelten For-schleife über colindex und rowindex <versus> cellrange.setDataArray( tuple_of_tuples )
Deshalb war meine Idee, dass ich im Prinzip alles über Python bearbeite und auslese und erst zum Schluss die fertigen Daten (und am besten schon formatiert mit Rahmen, Hintergrund, Farben, etc.) an OOo übergebe und es abspeichere.
Ich kenne die konkrete Aufgabenstellung nicht, aber für die "Verzierung" würde ich versuchen, einmal eine Art Template zu erstellen ( mit Formaten, bedingten Formatierungen etc. ) und später dann nur Daten eintragen per .setDataArray(..)

Karo

Re: Python und import

Verfasst: Do, 31.05.2012 11:35
von HansMaulwurf
Also prinzipiell habe ich in einem Ordner viele Dateien nach einem bestimmten Muster, z.B. abc_liste??.txt, wobei ?? von 0 bis 100 gehen kann. Ich suche mir mit Python die Dateien und lese sie ein (z.B. in zweidimensionalen Listen). Nun ist es so, dass in diesen txt-Dateien, bzw. dann im Text von den Zellen die Formatierung steckt, also steht z.B. in einer Zelle "test-<c02>", so muss der Text in der Farbe 02 sein und gleichzeitig das Kürzel -<c02> entfernt werden.
Das mit dem Template klappt da leider nicht so, aber eben weil es setDataArray gibt, dachte ich, es gäbe auch eine Möglichkeit die Formatierungen zu übergeben, ohne sie einzeln setzen zu müssen.

Re: Python und import

Verfasst: Do, 31.05.2012 12:00
von Stephan
Das mit dem Template klappt da leider nicht so
Warum nicht?




Gruß
Stephan

Re: Python und import

Verfasst: Do, 31.05.2012 12:30
von HansMaulwurf
Benutze ich dann denn nicht auch nur die gleichen Funktionen von OOo?

Re: Python und import

Verfasst: Do, 31.05.2012 12:42
von Karolus
Hallo
also steht z.B. in einer Zelle "test-<c02>", so muss der Text in der Farbe 02 sein und gleichzeitig das Kürzel -<c02> entfernt werden.
z.B. diesen Teil der Aufgabenstellung könnte man vmtl. recht effizient über eine entsprechende Search-Replace-Routine erledigen die anhand des konkreten Suchstrings eine vorher definierte Zellvorlage zuweist.

Ansonsten: Du suchst nach Hilfe bei einer komplexen Aufgabenstellung gibst aber die Details der Aufgabe nur häppchenweise raus - da kann man schlecht helfen.

Edit:
Benutze ich dann denn nicht auch nur die gleichen Funktionen von OOo?
natürlich benutzt du mit .setDataArray eine OOo-methode...
Karo

Re: Python und import

Verfasst: Do, 31.05.2012 13:08
von Karolus
Hallo
Zusatzfrage:
Du hast da anscheinend Csv-artige Dateien in denen Nutzdaten mit "Formatierungs"-daten zusammen verquirlt werden? - Ist das "Format" vorgegeben oder hast du das selber gebraut?

Karo

Re: Python und import

Verfasst: Do, 31.05.2012 17:40
von HansMaulwurf
Karolus hat geschrieben:
Benutze ich dann denn nicht auch nur die gleichen Funktionen von OOo?
natürlich benutzt du mit .setDataArray eine OOo-methode...
Karo
Damit meinte ich eher die Funktionen, mit denen ich dann das Template erzeuge bzw. die Zellvorlagen zuweise.

Sehe ich das also bisher richtig, dass ich mir nicht die Tabellenblätter als Objekte von OOo "klauen" kann, um sie dann zum Schluss an OOo zu übergeben?


Ja, es sind CSV-artige txt-Dateien, in denen in manchen Zellen solche Formatierungsdaten eingebunden sind.

Re: Python und import

Verfasst: Do, 31.05.2012 18:59
von Karolus
Hallo
Damit meinte ich eher die Funktionen, mit denen ich dann das Template erzeuge bzw. die Zellvorlagen zuweise.
Ja, auch die.
Sehe ich das also bisher richtig, dass ich mir nicht die Tabellenblätter als Objekte von OOo "klauen" kann, um sie dann zum Schluss an OOo zu übergeben?
Ich fürchte das was dir da vage vorschwebt ist eher nicht "zielführend"


Alternativ kannst du dich mal mit hiermit und damit auseinandersetzen, damit gehts dann ganz ohne OOo/LO 8)

Karo

Re: Python und import

Verfasst: Do, 31.05.2012 19:45
von HansMaulwurf
Deine alternativen Links sehen interessant aus ;) Das werd ich mir in einer freien Minute (wohl eher Stunde) mal zu Gemüte führen.
Bis dahin werd ich mich mal ein wenig mit Zellvorlagen auseinandersetzen. Da gibts nicht zufällig auch schon ein Packet für Python? ;P

Re: Python und import

Verfasst: Do, 31.05.2012 21:33
von Stephan
Benutze ich dann denn nicht auch nur die gleichen Funktionen von OOo?
Ich verstehe nicht was das sagen soll.

Karolus hat mir nun bereits vorgegriffen und so ähnlich hätte ich das auch gemacht und deshalb war meine Frage eben warum da was mit einer Vorlage nicht klappt, was Du ja so geschrieben hattest.
Aber irgendwie scheint mir jetzt der Thread von diesem Teil des Themas weg.


Gruß
Stephan