TOP

Wir erstellen eine Python-Funktion für LibreOffice Calc

Beschreibung

LibreOffice Calc ermöglicht Benutzern das Erstellen eigener Funktionen mithilfe der integrierten Programmiersprache StarBasic. Diese Sprache ist sehr ähnlich VBA Allerdings ist die Funktionalität eingeschränkt, da es selten verwendet wird.

Moderne Programmiersprachen wie Python bieten viel mehr Möglichkeiten und verfügen über eine größere Auswahl an zusätzlichen Bibliotheken für alle Gelegenheiten.

Lassen Sie uns also lernen, wie Sie mit einer heute so beliebten Programmiersprache wie Python Ihre eigene Funktion erstellen können.


Mit dem Office-Programmpaket LibreOffice können Sie eigene Funktionen in Programmiersprachen von Drittanbietern wie Python, JavaScript, C++, Java erstellen.

StarBASIC Code für die Greeting()-Funktion

Erinnern wir uns zunächst daran, wie Sie mit den Standardtools LibreOffice Calc zum Schreiben von Makros und Funktionen Ihr eigenes Programm schreiben können.

Unten finden Sie den Code für die Funktion Greeting , was eine Phrase zurückgibt "Hello " + Eingabeparameter in die ausgewählte Zelle mithilfe der integrierten Programmiersprache StarBasic.

Um Ihre eigene Funktion hinzuzufügen, öffnen Sie das Menü Tools - Macros - Edit Macros... , wählen Sie Module1 und kopieren Sie den folgenden Text in das Modul:

Function Greeting(sName As String) As String
    Greeting = "Hello " & sName & "!"
End Function

Schließen Sie dann Macro Editor, kehren Sie zu LibreOffice Calc zurück und geben Sie den Namen dieser Funktion in eine beliebige Zelle ein und geben Sie den Eingabeparameter an.

Python-Ordner

Bevor wir eine Funktion auf Python schreiben, müssen wir zunächst eine *.py-Datei erstellen (myPyScripts.py) im folgenden Ordner:

%APPDATA%\LibreOffice\4\user\scripts\python

Wenn Ordner Skripte Und Python fehlen, müssen Sie sie manuell erstellen.

Python Code für die Funktion Greeting()

Unten finden Sie das Python-Skript für die Funktion Greeting , was den Satz vorschreibt "Python say 'Hello' to " + Eingabeparameter in der ausgewählten Zelle im Programm LibreOffice Calc.

Um dieses Skript hinzuzufügen, öffnen Sie die Datei myPyScripts.py mittels Notepad++ (oder Windows Notepad) und kopieren Sie dort den folgenden Text:

def Greeting(sName):
    return "Python say 'Hello' to " + sName + "!"

Schließen Sie es dann Notepad++ und kehren Sie zu LibreOffice Calc zurück.

Wir können diese Funktion nicht sofort ausführen, da die LO Calc-Schnittstelle keine direkte Verbindung zu den Python-Funktionen hat.

Um dieses Problem zu lösen, müssen wir eine Zwischenfunktion für StarBasic erstellen:

Function Greeting(sName As String) As String
    pyFile = "myPyScripts.py"
	pyFunc = "Greeting"
	pyParams = Array(sName)
	
	ScriptProvider = CreateUNOService("com.sun.star.script.provider.MasterScriptProviderFactory").createScriptProvider("")
	pyScript = ScriptProvider.getScript("vnd.sun.star.script:" & pyFile & "$" & pyFunc & "?language=Python&location=user")
    Greeting = pyScript.invoke(pyParams, Array(), Array())
End Function

Fügen Sie diese Zwischenfunktion zum Makroeditor StarBasic hinzu (Menü Tools - Macros - Edit Macros...).

Rufen Sie nun die Funktion StarBasic auf Greeting() , was wiederum die Python-Version der Funktion aufruft Greeting() . Einfach eintreten Greeting() in eine beliebige Zelle und wählen Sie einen beliebigen Wert als Parameter aus.

Verwendung der Erweiterung

Sie können auch ein fertiges Set verwenden Funktionen Und Dienstprogramm geschrieben auf Python durch die Installation der Erweiterung YLC Utilities .

Danach steht diese Funktionalität in allen Dateien zur Verfügung, die in LibreOffice Calc geöffnet werden.