2014-05-21 24 views
8

Ich bin gerade Vollzeit zu Linux und LibreOffice umgezogen, aber ich versuche herauszufinden, wie man Skripte dafür in Python schreibt.Wie benutze ich LibreOffice Calc und Python?

Einfache Dinge wie Referenzierung Zellen/Blätter und so. Finden der letzten Zelle in einer Spalte mit Python.

Alle Dinge, die für mich in VBA unglaublich einfach waren, aber jetzt muss ich lernen, sie in Python zu tun.

+0

Software-Nutzungsfragen gehören zu superuser.com –

Antwort

2

Vielleicht wäre das OOSheet sein, was Sie suchen:

http://oosheet.hacklab.com.br/

Es ist eine höhere Ebene Python-Schnittstelle als python-uno (die so niedrig Level-API von OOSheet verwendet wird). Sie können damit Macro-Skripte erstellen, die in einer Shell ausgeführt werden, die von einem Socket mit libreoffice verbunden ist. Dies ist nützlich, da Sie IPython- oder andere interaktive (REPL) Shells verwenden können, um in einem Arbeitsblatt zu arbeiten oder etwas zu entwickeln.

Dies ist ein Beispielcode aus der offiziellen Dokumentation entnommen, die, wie einfach zeigt und ein wenig von dem, was sie tun können:

>>> from oosheet import OOSheet as S 
>>> S('a1').string = 'Hello world' 
>>> S('a1').value = 1 
>>> S('a2').formula = '=a1+10' 
>>> S('a2').value 
11.0 
>>> S('a2').string 
u'11' 
>>> S('a2').formula 
u'=A1+10' 
>>> S('a1').set_value(2).drag_to('a3').drag_to('b3') 
>>> S('a1:b3').data_array 
((2.0, 3.0), (3.0, 4.0), (4.0, 5.0)) 
>>> S('g5').string = 'hello world' 
>>> S('a1:10').shift_down_until(column_g_satisfies = lambda s: s.string.endswith('world')) 
Sheet1.G1:G10 
>>> S('a8:b8').cut() 
>>> S('a1:4').copy() 
>>> S('j5').paste() 
>>> S().undo() 
>>> S().redo() 
>>> S().save_as('/tmp/oosheet_sandbox.ods') 
>>> S().quit() # this will close LibreOffice 
2

Sie pyoo versucht haben? Es ist eine Art Python-UNO-Wrapper und scheint eine gültige und einfachere Alternative zu Python-UNO zu sein.

Verwandte Themen