Seite 1 von 1
Libre Office calc lesen und schreiben
Verfasst: Montag 11. November 2013, 01:55
von Ikarus
Hallo liebe Python Freunde
Ich habe eine Libre Office calc Datei die ich fertig gestaltet habe.
Ich möchte diese Datei, nennen wir sie Test.odt, mit python bearbeiten.
Also die Zelle A1 lesen und in der Zelle B5 ein "hello world" schreiben.
Kann mir einer sagen wie ich das machen kann, vielleicht mit einem simplen Beispiel.
Vielen Dank
Re: Libre Office calc lesen und schreiben
Verfasst: Montag 11. November 2013, 09:37
von karolus
Hallo
Das kannst du aus dem Script-kontext aus LO heraus lösen, Beispiele:
http://de.openoffice.info/search.php?keywords=python
Dabei must du vor allem lernen mit der LO.API klarzukommen, hilfreich dabei ist die Erweiterung
Mri die generiert dir sogar halbwegs brauchbaren Code beim Inspizieren der Objekte.
Unabhängig von LO gehts auch, schau dir dazu mal
https://pypi.python.org/pypi/odfpy an.
Karolus
Re: Libre Office calc lesen und schreiben
Verfasst: Montag 11. November 2013, 16:44
von Ikarus
Danke für deine Antwort karolus
Ich habe mir UNO etwas angesehen
http://www.openoffice.org/de/doc/entwic ... uecke.html
leider finde ich kein Beispiel wo eine existierende odt Datei in python importiert wird und dann diese
editiert wird.
Ein einfach Beispiel dieser Art wo man dann noch Zellen lesen und schreiben kann würde für den Anfang helfen
kannst du mir da weiter helfen?
Re: Libre Office calc lesen und schreiben
Verfasst: Montag 11. November 2013, 18:25
von karolus
Hallo
Um keine Begriffe durcheinander zu bringen - in Python kann man keine od*-dateien
importieren
Du findest Beispiele im Programmordner von LO unter ./share/Scripts/Python
Hier noch etwas zusammengewürfeltes für
calc
Code: Alles auswählen
context = XSCRIPTCONTEXT # globale Variable im sOffice-kontext
def example(): # funktioniert nur aus Calc
doc = context.getDocument() #aktuelles Document per Methodenaufruf ! mit Klammern !
sheets = doc.Sheets # ! Attributaufruf ohne Klammern !
firstsheet = sheets.getByIndex(0) # erstes Blatt per Index
secondsheet = sheets.getByName('Tabelle2') # 'Tabelle2 per Namen
firstsheet.geCellByPosition(0,0).Value = 3.14
firstsheet.getCellRangeByName('B1').String = 'Hallo Welt'
firstsheet.getCellByPosition(0,9).Formula = '=SUM(A1:A9)'
# ↓Das gleiche unten mit Lokalisiertem Funktionsnamen
#firstsheet.getCellByPosition(0,9).FormulalaLocal = '=SUMME(A1:A9)'
datarange = secondsheet.getCellRangeByPosition(0, 1, 3, 2) # A2:D3
data = ((1, 2, 3, 4),
(5, 6, 7, 8))
datarange.setDataArray(data)
Re: Libre Office calc lesen und schreiben
Verfasst: Dienstag 12. November 2013, 09:33
von karolus
Hallo
Die Zeile 10 oben muss natürlich lauten:
Karolus