Manipuler libreoffice en python
Auteur : Philippe Le Van - @plv@framapiaf.org
Date : 3 février 2023
Installation des outils de dev python pour libre office
En plus de libreoffice, installer les scripts python pour Libreoffice
Install the libreoffice-script-provider-python package
1 |
|
Installer l'extension apso.
Cette extension permet de voir rapidement toutes les macros python.
On peut télécharger l'extension ici : https://extensions.libreoffice.org/en/extensions/show/apso-alternative-script-organizer-for-Python
Ensuite on peut installer l'extension dans Tools > Extension Manager > Add...
L'extension apso ajoute un nouveau menu : Tools > Macro > Organize Python Scripts > ...
Ma première macro python
Créer les répertoires pour les macros python
Sur mon ubuntu avec libreoffice, on peut mettre les scripts dans le répertoire suivant :
$HOME/.config/libreoffice/4/user/Scripts/python
Chez moi, j'ai du créer les répertoires Scripts/python
Créer un nouveau document HelloWorld.py
Le fichier est dans le répertoire est $HOME/.config/libreoffice/4/user/Scripts/python/HelloWorld.py
1 2 3 4 5 6 7 |
|
Lancer la macro
Aller dans Tools > Macro > Organize Python Scripts
Faites un double clic sur la macro qui doit être présente :
Débugguer une macro python
Ouvrir le debugger
- Aller dans Tools > Macro > Organize Python Scripts
- Sélectionner la macro à débugguer
- Cliquer sur Menu > Debug
On arrive sur un genre de débugger. On peut ouvrir une console en cliquant sur "console"
Ecrire sur la console
On peut utiliser la fonction print
pour écrire sur la console.
Utiliser le débugger
On peut ensuite utiliser les boutons classiques du débugger, par exemple NEXT pour avancer pas à pas dans le code.
A chaque "print" du code, on verra s'afficher au fil de l'eau la valeur dans la console.
Documentation
- Python comme langage de macro libreoffice : les base : où mettre ses scripts, hello world,...
- Dev python pour libreoffice : infos générales sur python et les extensions libreoffice qui aident
- Description de l'API text en visual basic dans la doc officielle
- API Libreoffice en visual basic : quand on cherche à faire quelque chose, on peut utiliser le moteur de recherche de l'API visual basic, parfois ça aide bien
- extension APSO : permet de voir les scripts python
- extension Inspecteur MRI UNO : pas réussi à l'installer, mais permet théoriquement de voir les objets
- Identifier un texte entre 2 balises
Exemples de scripts en vrac
J'ai posé ici quelques exemples de code un peu "work in progress" mais qui permettent de voir comment marchent certaines fonctions de l'API.
Permet de fouiller dans des shapes du document
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Parcourir un document caractère par caractère dans des shapes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
Système de copier-coller a priori non fonctionnel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
|