Peut-être que le OOSheet serait ce que vous cherchez:
http://oosheet.hacklab.com.br/
Il est une interface python niveau plus élevé que python-uno (qui est utilisé comme API de bas niveau par OOSheet). Vous pouvez l'utiliser pour créer des scripts Macro, aussi bien dans un shell connecté à libreoffice par un socket. C'est sympa car vous pouvez utiliser IPython ou d'autres shells interactifs (REPL) pour travailler dans une feuille ou développer quelque chose.
Ceci est un code d'exemple tiré de la documentation officielle qui montre comment simple et un peu de ce qu'il peut faire:
>>> 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
Les questions d'utilisation du logiciel appartiennent à superuser.com –