LibreOffice Calc donne aux utilisateurs la possibilité de créer leurs propres fonctions en utilisant le langage de programmation intégré StarBasic. Cette langue est très similaire à VBA , cependant, a des fonctionnalités limitées car il est rarement utilisé.
Les langages de programmation modernes, tels que Python, offrent beaucoup plus de possibilités et disposent d'une gamme plus large de bibliothèques supplémentaires pour toutes les occasions.
Voyons donc comment créer votre propre fonction en utilisant un langage de programmation aussi populaire aujourd'hui que Python.
Tout d'abord, rappelons comment vous pouvez écrire votre propre programme à l'aide des outils standard LibreOffice Calc pour écrire des macros et des fonctions.
Ci-dessous le code de la fonction
Pour ajouter votre propre fonction, ouvrez le menu
Function Greeting(sName As String) As String Greeting = "Hello " & sName & "!" End Function
Ensuite, fermez Macro Editor, revenez à LibreOffice Calc et entrez le nom de cette fonction dans n'importe quelle cellule et spécifiez le paramètre d'entrée.
Avant d'écrire une fonction sur Python, nous devons d'abord créer un fichier *.py (
%APPDATA%\LibreOffice\4\user\scripts\python
Si les dossiers scripts et python manquants, vous devez les créer manuellement.
Ci-dessous se trouve le script Python pour la fonction
Pour ajouter ce script, ouvrez le fichier
def Greeting(sName):
return "Python say 'Hello' to " + sName + "!"
Ensuite, fermez-le
Nous ne pouvons pas exécuter cette fonction tout de suite car l'interface LO Calc n'a pas de connexion directe avec les fonctions Python.
Pour résoudre ce problème, nous devons créer une fonction intermédiaire sur 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
Ajoutez cette fonction intermédiaire à l'éditeur de macros StarBasic (menu
Appelez maintenant la fonction StarBasic
Vous pouvez également utiliser un ensemble prêt à l'emploi fonctions et utilitaire écrit sur
Après cela, cette fonctionnalité sera disponible dans tous les fichiers qui seront ouverts dans LibreOffice Calc.