Python in LibreOffice Calc – Dein erstes Makro (Hello World)
In diesem Tutorial zeige ich dir, wie du Python direkt in LibreOffice Calc einsetzen kannst, um Zellen automatisch zu verändern.
Wir starten bewusst mit einem sehr einfachen Beispiel, damit der Einstieg leicht fällt und sofort ein Erfolgserlebnis entsteht.
Das folgende Python-Makro schreibt den Text „Hello World“ in die aktuell ausgewählte Zelle – oder, falls mehrere Zellen markiert sind, in die erste Zelle des markierten Bereichs.
Damit lernst du bereits die wichtigsten Grundlagen:
-
wie LibreOffice Python-Skripte erkennt
-
wie du auf das aktive Calc-Dokument zugreifst
-
wie du mit der aktuellen Zell-Auswahl arbeitest
Dieses Beispiel bildet die Basis für alle weiteren Automatisierungen mit Python in LibreOffice Calc, etwa für Datenaufbereitung, Auswertungen oder wiederkehrende Aufgaben.
Hinweis: Die gezeigten Code-Beispiele dienen Lernzwecken. Änderungen und Einsatz erfolgen auf eigene Verantwortung – bitte teste alles vorab in einer Kopie deiner Dateien.
🔹 Wo müssen Python-Skripte in LibreOffice liegen?
LibreOffice bringt Python bereits mit – du musst also kein eigenes Python installieren, um Makros nutzen zu können.
Damit LibreOffice dein Skript erkennt, muss es jedoch im richtigen Benutzerverzeichnis liegen.
📁 Pfade für Python-Makros (Benutzerprofil)
Windows
🐧 Linux
🍎 macOS
Hinweis:
Ersetze<DEIN_USERNAME>entsprechend durch deinen tatsächlichen Benutzernamen.
🔹 Wichtiger Hinweis: Ordner ggf. selbst anlegen
Gerade bei einer frischen LibreOffice-Installation ist es völlig normal, dass die OrdnerScripts und python noch nicht existieren.
👉 In diesem Fall kannst (und sollst) du sie einfach selbst anlegen:
-
Groß- und Kleinschreibung beachten (
Scripts, nichtscripts) -
LibreOffice nach dem Anlegen der Ordner neu starten
LibreOffice erkennt die Ordner automatisch beim nächsten Start.
🔹 Wie wird das Skript ausgeführt?
Sobald dein Python-Skript im richtigen Ordner liegt und LibreOffice neu gestartet wurde, findest du es unter:
Dort wird deine .py-Datei als Ordner angezeigt, und darunter die enthaltene Makro-Funktion, die du ausführen kannst.
Beschreibung des Hello World Python Codes
Hier beschreibe ich den Python Code Schritt für Schritt:
import uno
Hier importieren wir das UNO-Modul. UNO ist die Programmierschnittstelle von LibreOffice, über die Python mit Calc kommunizieren kann.
def hello_world_to_selected_cell():
Das ist unsere Makro-Funktion. Genau diese Funktion wird später in LibreOffice als Python-Makro ausgeführt.
ctx = uno.getComponentContext()
Wir holen uns zuerst den sogenannten Component Context. Das ist der Einstiegspunkt in die LibreOffice-Umgebung.
smgr = ctx.ServiceManager
Über den ServiceManager können wir LibreOffice-Dienste erzeugen, zum Beispiel den Desktop.
desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop", ctx)
Hier erzeugen wir das Desktop-Objekt von LibreOffice. Darüber bekommen wir Zugriff auf die aktuell geöffneten Dokumente.
doc = desktop.getCurrentComponent()
Jetzt holen wir das aktuell aktive Dokument, also in unserem Fall das geöffnete Calc-Dokument.
selection = doc.CurrentController.getSelection()
Hier lesen wir aus, was der Benutzer gerade markiert hat – also eine einzelne Zelle oder einen Zellbereich.
if selection is None:
return
Falls aus irgendeinem Grund keine Auswahl existiert, brechen wir das Makro einfach ab, um Fehler zu vermeiden.
try:
cell = selection.getCellByPosition(0, 0)
Wenn mehrere Zellen markiert sind, nehmen wir die erste Zelle aus diesem Bereich – also oben links.
except:
cell = selection
Falls nur eine einzelne Zelle ausgewählt ist, verwenden wir diese direkt als Zielzelle.
cell.setString("Hello World")
Zum Schluss schreiben wir den Text „Hello World“ in die ermittelte Zelle.
Hier habt Ihr den Code noch als Downloaddatei:
Download mein_erstes_hello_world_python_script.zip
Damit habt ihr jetzt euer erstes Python-Makro, das direkt mit LibreOffice Calc arbeitet und Zellen verändert.

