libreoffice_macro
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
libreoffice_macro [2024/01/17 11:58] – tom | libreoffice_macro [2024/01/29 17:08] (Version actuelle) – tom | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Les macros avec LibreOffice ====== | ====== Les macros avec LibreOffice ====== | ||
- | **Version [[https:// | + | **Version [[https:// |
- | OS: Ubuntu 23.10** | + | **OS: Ubuntu 23.10** |
Avec LibreOffice Calc, il est possible d' | Avec LibreOffice Calc, il est possible d' | ||
- | Les langages de programmation disponibles sont le BASIC, Python, JavaScript et [[http:// | + | Les langages de programmation disponibles sont le **BASIC**, **Python**, **JavaScript** et **[[http:// |
+ | |||
+ | Pour avoir les autres langages de programmation, | ||
+ | sudo apt install libreoffice | ||
+ | |||
+ | ===== BASIC ===== | ||
+ | |||
+ | Le développement de macro BASIC est integré à LibreOffice gràce à son [[https:// | ||
+ | https:// | ||
===== Python ===== | ===== Python ===== | ||
- | Pour utiliser Python pour programmer des macros, il faut installer le script: | + | L' |
+ | |||
+ | Résumé de l' | ||
+ | |||
+ | Pour utiliser Python pour programmer des macros, il faut installer le script | ||
sudo apt install libreoffice-script-provider-python | sudo apt install libreoffice-script-provider-python | ||
+ | {{:: | ||
+ | |||
+ | Avec BASIC l' | ||
+ | |||
+ | Les fichiers de macros sont détéctés par libreOffice lorsqu' | ||
+ | ~/ | ||
+ | |||
+ | La macro Hello Wolrd: | ||
+ | |||
+ | import uno | ||
+ | def HelloWorldPythonCalc(): | ||
+ | oDoc = XSCRIPTCONTEXT.getDocument() | ||
+ | oSheet =oDoc.getSheets().getByIndex(0) | ||
+ | oCell = oSheet.getCellByPosition(0, | ||
+ | oCell.String = 'Hello World via Python' | ||
+ | return None | ||
+ | |||
+ | Pour exécuter la macro: | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | Si le bouton ' | ||
+ | |||
+ | |||
+ | Il est aussi possible d' | ||
+ | |||
+ | Pour cela on créé un script Python // | ||
+ | |||
+ | # | ||
+ | import zipfile | ||
+ | import shutil | ||
+ | import os | ||
+ | import sys | ||
+ | | ||
+ | print(" | ||
+ | shutil.rmtree(" | ||
+ | os.mkdir(" | ||
+ | | ||
+ | filename = " | ||
+ | print(" | ||
+ | macroName = sys.argv[2] | ||
+ | shutil.copyfile(sys.argv[1], | ||
+ | | ||
+ | doc = zipfile.ZipFile(filename,' | ||
+ | doc.write(macroName, | ||
+ | manifest = [] | ||
+ | for line in doc.open(' | ||
+ | if '</ | ||
+ | for path in [' | ||
+ | manifest.append(' | ||
+ | manifest.append(line.decode(' | ||
+ | | ||
+ | doc.writestr(' | ||
+ | doc.close() | ||
+ | print(" | ||
+ | |||
+ | Éxécuter l' | ||
+ | python include_macro.py document.ods myscript.py | ||
+ | |||
+ | ==== Extensions 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é // | ||
+ | //. Elle permet aussi d' | ||
+ | |||
+ | https:// | ||
+ | |||
+ | === Include Python Path Extension for LibreOffice === | ||
+ | |||
+ | Avec Python, il est possible de créer des environnement virtuel. Cela permet d' | ||
+ | |||
+ | Cette extension permet d' | ||
+ | |||
+ | https:// | ||
+ | |||
+ | === OOO Development Tools (OooDev) === | ||
+ | |||
+ | Cette extension permet à des scripts Python d' | ||
+ | Il existe aussi l' | ||
+ | |||
+ | === MRI === | ||
+ | |||
+ | MRI n'est pas une extension spécifique à Python mais elle permet d' | ||
+ | |||
+ | ==== Librairies Python pour LibreOffice ==== | ||
+ | Afin d' | ||
+ | |||
+ | Des librairies pour intéragir avec l'API existe: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | D' | ||
+ | |||
+ | ===== 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 ' | ||
+ | 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 // | ||
+ | | ||
+ | Il est ensuite possible d' | ||
+ | |||
+ | ===== BeanShell ===== | ||
+ | |||
+ | On s'en fiche non ? | ||
+ | |||
+ | ===== Le SDK LibreOffice ===== | ||
+ | |||
+ | Le SDK est un ensemble d' | ||
+ | sudo apt install libreoffice-dev | ||
+ | |||
+ | Plus d'info [[https:// | ||
+ | |||
+ | |||
+ | ===== 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' | ||
===== Sources et resources ===== | ===== Sources et resources ===== | ||
- | https:// | + | https:// |
- | https:// | + | https:// |
- | https:// | + | https:// |
- | https:// | + | https:// |
- | https:// | + | https:// |
- | https:// | + | https:// |
- | https:// | + | https:// |
- | https:// | + | https:// |
- | https:// | + | https:// |
- | https:// | + | https:// |
- | https:// | + | https:// |
- | https:// | + | [[https:// |
+ | [[https:// | ||
+ | https:// | ||
+ | [[https:// | ||
+ | https:// |
libreoffice_macro.1705492693.txt.gz · Dernière modification : 2024/01/17 11:58 de tom