Python und import

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

HansMaulwurf
*
Beiträge: 10
Registriert: Di, 24.04.2012 10:51

Python und import

Beitrag 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Python und import

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
HansMaulwurf
*
Beiträge: 10
Registriert: Di, 24.04.2012 10:51

Re: Python und import

Beitrag 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.
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Python und import

Beitrag von Stephan »

Das mit dem Template klappt da leider nicht so
Warum nicht?




Gruß
Stephan
HansMaulwurf
*
Beiträge: 10
Registriert: Di, 24.04.2012 10:51

Re: Python und import

Beitrag von HansMaulwurf »

Benutze ich dann denn nicht auch nur die gleichen Funktionen von OOo?
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Python und import

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Python und import

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
HansMaulwurf
*
Beiträge: 10
Registriert: Di, 24.04.2012 10:51

Re: Python und import

Beitrag 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.
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Python und import

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
HansMaulwurf
*
Beiträge: 10
Registriert: Di, 24.04.2012 10:51

Re: Python und import

Beitrag 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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Python und import

Beitrag 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
Antworten