TOP

Creiamo una funzione Python per LibreOffice Calc

Descrizione

LibreOffice Calc consente agli utenti di creare le proprie funzioni utilizzando il linguaggio di programmazione StarBasic integrato. Questa lingua è molto simile a VBA , tuttavia, ha funzionalità limitate poiché viene utilizzato raramente.

I linguaggi di programmazione moderni, come Python, offrono molte più possibilità e dispongono di una gamma più ampia di librerie aggiuntive per tutte le occasioni.

Quindi, impariamo come creare la tua funzione utilizzando un linguaggio di programmazione oggi così popolare come Python.


Il pacchetto di programmi per ufficio LibreOffice ti consente di creare le tue funzioni in linguaggi di programmazione di terze parti come Python, JavaScript, C++, Java.

StarBASIC Codice per la funzione Greeting()

Innanzitutto, ricordiamo come scrivere il proprio programma utilizzando gli strumenti standard LibreOffice Calc per scrivere macro e funzioni.

Di seguito è riportato il codice per la funzione Greeting , che restituisce una frase "Hello " + parametro di ingresso nella cella selezionata utilizzando il linguaggio di programmazione integrato StarBasic.

Per aggiungere la tua funzione, apri il menu Tools - Macros - Edit Macros... , seleziona Module1 e copia il seguente testo nel modulo:

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

Quindi, chiudi Macro Editor, torna a LibreOffice Calc e inserisci il nome di questa funzione in qualsiasi cella e specifica il parametro di input.

Cartella Python

Prima di scrivere una funzione su Python, dobbiamo prima creare un file *.py (myPyScripts.py) nella seguente cartella:

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

Se le cartelle script E pitone mancanti, è necessario crearli manualmente.

Python Codice per la funzione Greeting()

Di seguito è riportato lo script Python per la funzione Greeting , che prescrive la frase "Python say 'Hello' to " + parametro di ingresso nella cella selezionata nel programma LibreOffice Calc.

Per aggiungere questo script, apri il file myPyScripts.py per mezzo di Notepad++ (O Windows Notepad) e copia lì il seguente testo:

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

Quindi chiudilo Notepad++ e torna a LibreOffice Calc.

Non possiamo eseguire subito questa funzione perché l'interfaccia LO Calc non ha una connessione diretta alle funzioni Python.

Per risolvere questo problema, dobbiamo creare una funzione intermedia su 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

Aggiungi questa funzione intermedia all'editor di macro StarBasic (menu Tools - Macros - Edit Macros...).

Ora chiama la funzione StarBasic Greeting() , che a sua volta chiama la versione Python della funzione Greeting() . Basta entrare Greeting() in qualsiasi cella e selezionare qualsiasi valore come parametro.

Utilizzando l'estensione

Puoi anche utilizzare un set già pronto funzioni E utilità scritto su Python installando l'estensione YLC Utilities .

Successivamente, questa funzionalità sarà disponibile in tutti i file che verranno aperti in LibreOffice Calc.