Erstellen von Python-Skripten mit ScriptForge (2025)

Unterschiede zwischen Basic und Python

Die Bibliothek ScriptForge ist sowohl für Basic als auch für Python verfügbar. Die meisten Dienste, Methoden und Eigenschaften funktionieren in beiden Programmiersprachen identisch. Aufgrund der Unterschiede in der Funktionsweise der einzelnen Sprachen müssen Benutzer von ScriptForge jedoch einige Eigenschaften der Bibliothek beachten, wenn sie Python verwenden:

  • Methoden- und Eigenschaftsnamen: In Python können alle Methoden und Eigenschaften in Kleinbuchstaben, mit Kapitälchen oder BinnenVersal verwendet werden.

  • Argumente: Alle an Methoden übergebenen Schlüsselwortargumente werden in Kleinbuchstaben geschrieben.

  • Daten: Alle Datumsobjekte werden als native Python-Objekte datetime.datetime übergeben und zurückgegeben.

  • Matrizen: Eindimensionale Matrizen werden als Tupel übergeben und zurückgegeben (was ein unveränderliches Objekt ist). Zweidimensionale Matrizen werden als Tupel von Tupeln übergeben und zurückgegeben.

  • None: Das Schlüsselwort None von Python entspricht Null, Empty oder Nothing von Basic.

  • UNO-Objekte: Alle UNO-Strukturen werden unverändert zwischen Basic und Python ausgetauscht.

  • Debugging: Immer wenn ein Fehler in Python-Skripten auftritt, die ScriptForge verwenden, zeigt die vom Python-Ausführungsstapel bereitgestellte Fehlermeldung die Codezeile an, die den Fehler ausgelöst hat. In Basic-Fehlermeldungen werden diese Informationen nicht angezeigt.

Erstellen von Python-Skripten mit ScriptForge (1)

Weitere Informationen zur Python-Skripterstellung mit LibreOfficeDev finden Sie in der Hilfe zu LibreOfficeDev Python-Skripte.


Ausführen von Python-Skripten in LibreOfficeDev

Je nachdem, was Sie erreichen möchten, können Sie einen der folgenden Ansätze zum Ausführen von Python-Skripten in LibreOfficeDev wählen:

  • Skripte innerhalb des aktuellen LibreOfficeDev-Prozesses ausführen: Um Python-Skripte innerhalb des LibreOfficeDev-Prozesses auszuführen, wählen Sie Extras – Makros – Makro ausführen… oder verwenden die APSO-Erweiterung, um Benutzer-Skripte aufzurufen, die im Ordner für Python-Skripte gespeichert sind. Sie können auch die APSO-Python-Shell verwenden, um Python-Skripte interaktiv auszuführen.

  • Skripte getrennt vom LibreOfficeDev-Prozess ausführen: Python-Skripte werden von einem externen Prozess ausgeführt, der über einen Socket eine Verbindung zu einem laufenden LibreOfficeDev-Prozess herstellt.

Erstellen von Python-Skripten mit ScriptForge (2)

Wenn Sie Skripte innerhalb des LibreOfficeDev-Prozesses ausführen möchten, wird empfohlen, die APSO-Erweiterung (Alternative Script Organizer for Python) zu installieren. Um jedoch Python-Skripte außerhalb von LibreOfficeDev zu entwickeln, können Sie Ihre bevorzugte Python-IDE verwenden.


Ausführen von Skripten innerhalb des LibreOfficeDev-Prozesses

Verwenden der APSO-Erweiterung

Der einfachste Einstieg in die Python-Skripterstellung in LibreOfficeDev ist die Installation der APSO-Erweiterung. Öffnen Sie nach der Installation eine beliebige LibreOfficeDev-Komponente und wählen Sie Extras – Makros – Python-Skripte verwalten…

Wählen Sie im Hauptfenster der APSO Menü – Python-Shell…


Jetzt können Sie anfangen, Python-Befehle einzugeben, und die Shell gibt die entsprechende Ausgabe aus, nachdem jede Codezeile ausgeführt wurde.

Um die Bibliothek ScriptForge zu verwenden, müssen Sie die Methode CreateScriptService importieren, mit der Sie auf die von der Bibliothek bereitgestellten Dienste zugreifen können. Das folgende Beispiel verwendet den Dienst Basic, um ein Meldungsfeld anzuzeigen.

 from scriptforge import CreateScriptService bas = CreateScriptService("Basic") bas.MsgBox("Hello!") 

Um das obige Beispiel auszuführen, geben Sie jede Zeile nacheinander in die Python-Shell ein und drücken [Eingabetaste], nachdem Sie jede Codezeile eingegeben haben.

Jetzt können Sie mit der Ausführung von Python-Befehlen über einen der Dienste von ScriptForge beginnen. Der folgende Code-Schnipsel verwendet beispielsweise den Dienst UI, um ein leeres Writer-Dokument zu erstellen.

 ui = CreateScriptService("UI") doc = ui.CreateDocument("Writer") 

Erstellen von Python-Skriptdateien

Sie können Ihre eigenen Python-Dateien erstellen und sie mit Ihrem bevorzugten Texteditor bearbeiten. Später können Sie diese von jeder LibreOfficeDev-Komponente aus aufrufen.

Der erste Schritt besteht darin, herauszufinden, wo Ihre Benutzerskripte gespeichert sind. Lesen Sie dazu die Hilfeseite Verwaltung und Speicherort von Python-Skripten.

Jetzt können Sie eine Textdatei in Ihrem Python-Benutzerskriptordner erstellen, beispielsweise sf_test.py, und mit der Eingabe Ihrer Skripte beginnen.

Als nächstes folgt ein einfaches Beispiel, das den numerischen Wert aus einer Calc-Zelle erhält und um 1 erhöht. Geben Sie einfach den folgenden Code in die Datei sf_test.py ein.

 from scriptforge import CreateScriptService doc = CreateScriptService("Calc") def increment_cell(args=None): value = doc.GetValue("A1") value += 1 doc.SetValue("A1", value) g_exportedScripts = (increment_cell, ) 

Dieses Beispiel erstellt die Funktion increment_cell. Beachten Sie, dass g_exportedScripts ein Tupel ist, das angibt, welche Funktionen in LibreOfficeDev als Benutzerskripte angezeigt werden.

So führen Sie dieses Skript in einem Calc-Dokument aus:

  1. Erstellen oder öffnen Sie eine Calc-Datei.

  2. Geben Sie einen numerischen Wert in die Zelle "A1" in der aktuellen Tabelle ein.

  3. Wählen Sie Extras – Makros – Makros ausführen…

  4. Wählen Sie »Meine Makros – sf_test« in der Auswahl „Bibliothek“. Wählen Sie dann die Funktion increment_cell aus der Liste Makroname.

  5. Klicken Sie auf Ausführen. Sehen Sie nach, dass der Wert in Zelle "A1" um 1 erhöht wurde.

Sie können die APSO auch verwenden, um Python-Skripte auf ähnliche Weise auszuführen:

  1. Öffnen Sie zuerst die APSO, indem Sie Extras – Makros – Python-Skripte verwalten wählen.

  2. Navigieren Sie in der Makroliste zu Meine Makros – sf_test – increment_cell.

  3. Klicken Sie auf Ausführen.

Ausführen von Skripten getrennt vom LibreOfficeDev-Prozess

Bestimmen des Installationspfads

Der erste Schritt zum Ausführen von Skripten aus einem separaten Prozess besteht darin, den Ordner zu finden, in dem LibreOfficeDev installiert ist. Dafür gibt es mehrere Möglichkeiten, aber ScriptForge bietet eine schnelle Möglichkeit, Ihren Installationspfad zu identifizieren. Öffnen Sie dazu die Python-Shell von APSO und geben Sie Folgendes ein:

 from scriptforge import CreateScriptService fs = CreateScriptService("FileSystem") fs.FileNaming = "SYS" inst_dir = fs.InstallFolder print(inst_dir) 

Die Ausgabe des obigen Codes ist das Basisverzeichnis, in dem LibreOfficeDev installiert ist. Jetzt müssen Sie den Unterordner "program" zum resultierenden Pfad hinzufügen. Dies ist der Basisordner, von dem aus Sie Python-Skripte in einem separaten Prozess ausführen.

Angenommen, Sie erhalten /usr/lib/libreoffice/ als Ergebnis der Ausführung des obigen Python-Codes. Dann müssen Sie /usr/lib/libreoffice/program als Pfad zum Ausführen Ihrer Python-Skripte verwenden.

Starten Sie LibreOfficeDev mit den Socket-Einstellungen

Um Python-Skripte von einem separaten Prozess auszuführen, müssen Sie LibreOfficeDev mit einigen zusätzlichen Optionen starten, die den Hostnamen und den Port festlegen, über die der externe Prozess mit dem LibreOfficeDev-Komponentenprozess kommuniziert.

Öffnen Sie die Eingabeaufforderung Ihres Betriebssystems, navigieren Sie zum Programmordner Ihres LibreOfficeDev-Installationsverzeichnisses und geben Sie Folgendes ein:

./soffice --accept='socket,host=localhost,port=2021;urp;'

Der obige Befehl startet LibreOfficeDev mit einem offenen Kommunikationskanal, sodass andere Prozesse Nachrichten damit austauschen können.

Beachten Sie, dass das vorherige Beispiel das LibreOfficeDev-Startcenter öffnet. Wenn Sie eine bestimmte Komponente öffnen möchten, beispielsweise Writer, können Sie dem Befehl die Ergänzung --writer wie folgt hinzufügen.

./soffice --writer --accept='socket,host=localhost,port=2021;urp;'

Beachten Sie die Parameter host und port, die in diesem Beispiel jeweils localhost und 2021 sind.

Ausführen einer externen Python-Shell

Starten Sie die Python-Shell aus dem Ordner program in Ihrem LibreOfficeDev-Installationspfad. Befolgen Sie die Schritte oben, um zu erfahren, wie Sie Ihren Installationspfad finden.

Unter Linux / Mac OS:

$ cd /usr/lib/libreoffice/program

$ python

Unter Windows:

$ cd C:\Program Files\LibreOffice\program\

$ python.exe

Dies öffnet die Python-Shell und Sie können anschließend mit der Eingabe von Befehlen beginnen, die von LibreOfficeDev ausgeführt werden. Aber zuerst müssen Sie die Socket-Verbindung einrichten.

 from scriptforge import ScriptForge, CreateScriptService ScriptForge(hostname='localhost', port=2021) 

Erstellen von Python-Skripten mit ScriptForge (4)

Lesen Sie den Abschnitt Einstellen von PYTHONPATH unten, falls beim Importieren von scriptforge.py oder uno.py Fehler auftreten.


Die zweite Codezeile oben definiert die Einstellungen host und port, sodass die Python-Shell mit einem laufenden LibreOfficeDev-Prozess kommunizieren kann, der mit denselben Socket-Einstellungen geöffnet wird.

Jetzt können Sie andere Python-Befehle ausführen und diese können mit dem LibreOfficeDev-Prozess kommunizieren. Zum Beispiel:

 ui = CreateScriptService("UI") bas = CreateScriptService("Basic") doc = ui.OpenDocument("~/Documents/myFile.ods") bas.MsgBox(doc.DocumentType) 

PYTHONPATH festlegen

Abhängig von der Konfiguration Ihres Betriebssystems müssen Sie die Umgebungsvariable PYTHONPATH festlegen, um die Bibliothek scriptforge.py zu importieren, was wiederum den Import der Bibliothek uno.py erfordert.

Verwenden Sie die Dateisuchfunktion Ihres Betriebssystems, um das Verzeichnis zu ermitteln, in dem sich diese beiden Dateien befinden.

Bei einer standardmäßigen Ubuntu-Installation könnten sich beide Dateien beispielsweise unter folgender Adresse befinden:

  • scriptforge.py: Liegt in /usr/lib/libreoffice/program

  • uno.py: Liegt in /usr/lib/python3/dist-packages

Setzen Sie in diesem Fall die Umgebungsvariable PYTHONPATH wie folgt, bevor Sie den Python-Interpreter starten:

export PYTHONPATH=/usr/lib/libreoffice/program:/usr/lib/python3/dist-packages

Erstellen von Python-Skripten mit ScriptForge (5)

Der Speicherort dieser Dateien ist je nach Betriebssystem und LibreOfficeDev-Installationsmethode unterschiedlich.


Verwandte Themen

Die Bibliothek ScriptForge

LibreOfficeDev Python-Skripte Hilfe

LibreOfficeDev mit Parametern starten

Erstellen von Python-Skripten mit ScriptForge (2025)

FAQs

How to run a Python script in LibreOffice? ›

To run this script from within a Calc document:
  1. Create or open a Calc file.
  2. Enter some numeric value into cell "A1" in the current sheet.
  3. Go to Tools - Macros - Run Macros .
  4. Choose My Macros - sf_test in the library selector. Then choose the increment_cell function under the Macro Name list.
  5. Click Run.

How to install Python in LibreOffice? ›

Install Python Package for Libre Office
  1. Start a command prompt, preferably with administrator permissions.
  2. Change to the LibreOfice installation directory (eg cd C:\Program Files\LibreOffice\program )
  3. Run python get-pip.py.
  4. Close command prompt.

How do I run my Python script? ›

Running Python Scripts involves utilising the Python interpreter to execute the code written in the script. To run Python Scripts, you can open a command prompt or terminal, navigate to the directory containing the script, and use the command "python script_name.py" (replace "script_name" with the actual filename).

How do I run Python code in script mode? ›

Step 1: Open the Python IDE and open the script file in Python IDE using the open option given. Or, we can even use the 'F5' button shortcut to run the script file in the Python IDE. That's how we can run or execute our Python script file using the Python IDE installed in our system.

Does LibreOffice come with Python? ›

LibreOffice on windows comes with it's own Python version.

How to install Python by command? ›

4 Steps to Install Python on Windows 10
  1. Go to Python's website and download the latest version of Python.
  2. Select “Windows installer” and click download.
  3. Follow the on-screen instructions.
  4. Verify the installation by opening a command prompt and typing: python -V .
Sep 14, 2023

Is LibreOffice base compatible with Python? ›

Python programming in LibreOffice is very dependent on your operating system. Without knowing what OS you have and what versions of LibreOffice we are left to guess, and I am very bad at guessing. Yes, it is possible to connect to Base(Firebird) from inside and outside LibreOffice.

How do I run a Python script on my desktop? ›

To run Python scripts with the python command, you need to open a command-line window and type in the word python followed by the path to your target script: Windows. Linux + macOS.

How do I enable Python macros in LibreOffice? ›

So, to run the macro, click Tools > Organize Macros > Python . In the Python Macros window, expand the My Macros section. You should see the Python file name and the function name listed. Select the function name and hit Run to execute.

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Fr. Dewey Fisher

Last Updated:

Views: 5669

Rating: 4.1 / 5 (62 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Fr. Dewey Fisher

Birthday: 1993-03-26

Address: 917 Hyun Views, Rogahnmouth, KY 91013-8827

Phone: +5938540192553

Job: Administration Developer

Hobby: Embroidery, Horseback riding, Juggling, Urban exploration, Skiing, Cycling, Handball

Introduction: My name is Fr. Dewey Fisher, I am a powerful, open, faithful, combative, spotless, faithful, fair person who loves writing and wants to share my knowledge and understanding with you.