Outils pour utilisateurs

Outils du site


libreoffice_macro

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
libreoffice_macro [2024/01/18 19:37] tomlibreoffice_macro [2024/01/29 17:08] (Version actuelle) tom
Ligne 6: Ligne 6:
 Avec LibreOffice Calc, il est possible d'éxécuter des macros, un ensemble de fonctions qui permet de manipuler et d'effectuer des opérations dans un ou plusieurs fichiers LibreOffice. Avec LibreOffice Calc, il est possible d'éxécuter des macros, un ensemble de fonctions qui permet de manipuler et d'effectuer des opérations dans un ou plusieurs fichiers LibreOffice.
  
-Les langages de programmation disponibles sont le **BASIC**, **Python**, **JavaScript** et **[[http://beanshell.org/intro.html|BeanShell]]**. Par defautseul BASIC est disponible.{{::macro_menu_basic_only.png?400|}}+Les langages de programmation disponibles sont le **BASIC**, **Python**, **JavaScript** et **[[http://beanshell.org/intro.html|BeanShell]]**. Sous Ubuntul'installation de LibreOffice via le store d'applications installe seulement BASIC.{{::macro_menu_basic_only.png?400|}} 
 + 
 +Pour avoir les autres langages de programmation, il faut installer les //script-provider// spécifiques ou réinstaller LibreOffice complétement à partir d'APT: 
 +  sudo apt install libreoffice 
 + 
 +===== BASIC ===== 
 + 
 +Le développement de macro BASIC est integré à LibreOffice gràce à son [[https://extensions.libreoffice.org/assets/downloads/7/LibOBasic_01_IDE_Flat_A4_FR_v105.pdf|IDE]], les macros peuvent être integrées au document.\\  
 +https://wiki.documentfoundation.org/images/2/2d/GS4013FR-Macros.pdf
  
 ===== Python ===== ===== Python =====
-Résumé de l'article: https://www.debugpoint.com/first-python-macro-libreoffice/\\  
  
-Pour utiliser Python pour programmer des macros, il faut installer le script:+L'intéret d'utiliser Python avec LibreOffice est l'utilisation cross-platforme. LibreOffice intègre son propre interpéteur Python, différend de ceux fourni par les IDE Python. 
 + 
 +Résumé de l'article suivant: https://www.debugpoint.com/first-python-macro-libreoffice/\\  
 + 
 +Pour utiliser Python pour programmer des macros, il faut installer le script provider:
  
   sudo apt install libreoffice-script-provider-python   sudo apt install libreoffice-script-provider-python
Ligne 33: Ligne 44:
       return None       return None
  
-Pour éxécuter la macro:+Pour exécuter la macro:
  
 {{::macro_menu_python.png?400|}} {{::macro_menu_python.png?400|}}
Ligne 75: Ligne 86:
   python include_macro.py document.ods myscript.py   python include_macro.py document.ods myscript.py
  
-===== Extensions Python =====+==== Extensions Python ====
  
-==== APSO (Alternative Script Organizer for Python ) ====+=== APSO (Alternative Script Organizer for Python ) ===
  
 Cette extension permet de gérer dans LibreOffice les macros Python (celles dans le dossier adéquat). Il faut avoir installé //libreoffice-script-provider-python Cette extension permet de gérer dans LibreOffice les macros Python (celles dans le dossier adéquat). Il faut avoir installé //libreoffice-script-provider-python
Ligne 84: Ligne 95:
 https://gitlab.com/jmzambon/apso https://gitlab.com/jmzambon/apso
  
-==== Include Python Path Extension for LibreOffice ====+=== Include Python Path Extension for LibreOffice === 
 + 
 +Avec Python, il est possible de créer des environnement virtuel. Cela permet d'avoir des versions différentes de Python en paralléle et surtout des packages et des librairies spécifique à un environnement. 
 + 
 +Cette extension permet d'ajouter un chemin à un environnement Python spécifique pour utiliser les packages de cet environnement par LibreOffice. 
 https://github.com/Amourspirit/libreoffice-python-path-ext/tree/main#readme https://github.com/Amourspirit/libreoffice-python-path-ext/tree/main#readme
 +
 +=== OOO Development Tools (OooDev) ===
 +
 +Cette extension permet à des scripts Python d'être exécuté en dehors d'un document LibreOffice et d'interagir avec celui-ci.
 +Il existe aussi l'extension [[https://pypi.org/project/oooenv/|oooenv]] qui est nécessaire pour créer un envirronement virtuel afin d'utiliser OooDevTools. Plus d'info [[https://python-ooo-dev-tools.readthedocs.io/en/main/guide/virtual_env/index.html|ici]].
 +
 +=== MRI ===
 +
 +MRI n'est pas une extension spécifique à Python mais elle permet d'inspecter les éléments d'un document LibreOffice. La version 1.1.4  ne s'installe pas avec LibreOffice 7.6.4 mais la version 1.3.4 fonctionne et est disponible sur [[https://github.com/hanya/MRI|Github]]
 +
 +==== Librairies Python pour LibreOffice ====
 +Afin d'interagir avec un document LibreOffice, il est nécessaire d'utiliser l'[[https://api.libreoffice.org/|API]].
 +
 +Des librairies pour intéragir avec l'API existe:
 +  * [[https://python-ooo-dev-tools.readthedocs.io/en/latest/|OooDevTool]], une librairie compléte
 +  * [[https://gitlab.com/LibreOfficiant/scriptforge|ScriptForge]], un framework plus qu'une librairie
 +  * [[https://github.com/Amourspirit/python-types-unopy|types-unopys]], pour ajouter le typage
 +
 +D'autres librairies peuvent être ajoutées à un code Python tel que [[https://numpy.org/|Numpy]] ou [[https://github.com/pydata/numexpr|Numexpr]]
 +
 +===== JavaScript =====
 +
 +De la même manière que pour Python, il faut installer le script_provider si JavaScript n'est pas disponible dans le menu 'Outils  - Macros - Organiser les Macros':
 +  sudo apt install libreoffice-script-provider-js
 +
 +On peut ensuite créé un module et une macro via le menu de Libreoffice. Il est conseillé de passer par ce menu pour créer la macro car elle se localisera directement dans le dossier //~/.config/libreoffice/4/user/Scripts/javascript// et elle sera accompagné d'un fichier //parcel-descriptor.xml// qui permet à LibreOffice de détecter la macro.
 +  
 +Il est ensuite possible d'exécuter la macro. Et le bouton d'édition ouvre l'utilitaire //Rhino Javascript Debugger// qui permet d'éditer la macro et de la débugger.
 +
 +===== BeanShell =====
 +
 +On s'en fiche non ?
 +
 +===== Le SDK LibreOffice =====
 +
 +Le SDK est un ensemble d'outils et de librairies pour créer des applications dans différents langages de programmation (Java, C++,..) qui pourront interagir avec LibreOffice. Pour l'installer, si LibreOffice a été installé via le store Ubuntu, il faut éxecuter la commande:
 +  sudo apt install libreoffice-dev
 +
 +Plus d'info [[https://api.libreoffice.org/docs/install.html|ici]]:
 +
 +
 +===== Avancé =====
 +Il est possible de faire enormement de chose avec LibreOffice:
 +  * Créér des extensions qui embarquent des script spécifique
 +  * Démarrer LibreOffice avec un socket ouvert pour le contrôller depuis un autre programme
 +  * Créer d'autre script-provider pour intégrer d'autre langages de macros.
  
  
Ligne 100: Ligne 162:
 https://extensions.libreoffice.org/en/extensions/show/41700\\  https://extensions.libreoffice.org/en/extensions/show/41700\\ 
 https://python-ooo-dev-tools.readthedocs.io/en/main/index.html\\  https://python-ooo-dev-tools.readthedocs.io/en/main/index.html\\ 
-https://www.youtube.com/watch?v=pHlLdyJz2sE\\  +[[https://www.youtube.com/watch?v=pHlLdyJz2sE|[YouTube] Python scripts in LibreOffice Calc using the ScriptForge library]]\\  
-https://www.youtube.com/watch?v=d5Mga1TibJc+[[https://www.youtube.com/watch?v=d5Mga1TibJc|[YouTube] Macros Python pour LibreOffice Calc]]\\  
 +https://niocs.github.io/LOBook/index.html\\  
 +[[https://www.youtube.com/watch?v=g8I8uGjaXA8|[YouTube] Automating LibreOffice Calc with Python by Onyeibo Oku]]\\  
 +https://tutolibro.tech/2019/07/26/libreoffice-calc-python-programming-part-1-requirements/
libreoffice_macro.1705606643.txt.gz · Dernière modification : 2024/01/18 19:37 de tom