LibreOffice Calc umożliwia użytkownikom tworzenie własnych funkcji przy użyciu wbudowanego języka programowania StarBasic. Ten język jest bardzo podobny do VBA ma jednak ograniczoną funkcjonalność, ponieważ jest rzadko używany.
Nowoczesne języki programowania, takie jak Python, dają znacznie więcej możliwości i posiadają szerszą gamę dodatkowych bibliotek na każdą okazję.
Dowiedzmy się więc, jak stworzyć własną funkcję, korzystając z tak popularnego obecnie języka programowania jak Python.
Na początek przypomnijmy sobie, jak można napisać własny program, korzystając ze standardowych narzędzi LibreOffice Calc do pisania makr i funkcji.
Poniżej znajduje się kod funkcji
Aby dodać własną funkcję, otwórz menu
Function Greeting(sName As String) As String Greeting = "Hello " & sName & "!" End Function
Następnie zamknij Macro Editor, wróć do LibreOffice Calc i wprowadź nazwę tej funkcji w dowolnej komórce, a także określ parametr wejściowy.
Przed napisaniem funkcji w Python musimy najpierw utworzyć plik *.py (
%APPDATA%\LibreOffice\4\user\scripts\python
Jeśli foldery skrypty I pyton brakuje, należy je utworzyć ręcznie.
Poniżej znajduje się skrypt Python dla tej funkcji
Aby dodać ten skrypt, otwórz plik
def Greeting(sName):
return "Python say 'Hello' to " + sName + "!"
Następnie zamknij je
Nie możemy od razu uruchomić tej funkcji, ponieważ interfejs LO Calc nie ma bezpośredniego połączenia z funkcjami Python.
Aby rozwiązać ten problem, musimy utworzyć funkcję pośrednią na StarBasic:
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
Dodaj tę funkcję pośrednią do edytora makr StarBasic (menu
Teraz wywołaj funkcję StarBasic
Można także skorzystać z gotowego zestawu funkcje I pożytek napisane dalej
Od tego momentu ta funkcjonalność będzie dostępna we wszystkich plikach, które zostaną otwarte w LibreOffice Calc.