Macros/Python Guide/fr/1stmacro
TDF LibreOffice Document Liberation Project Blogs communautaires Weblate Nextcloud Redmine Ask LibreOffice Donner
⇐ Environnement de développement |Table des matières| Principes de base ⇒
Ma première macro
Comment écrire une première macro en python et l'exécuter ?
Nous allons créer une première macro qui va afficher une boite de dialogue de titre «Python» avec le message «Bonjour à tous».
Gestion de la révision de version
Initialisation de l'historisation
Si vous avez la révision de versions git déjà initialisée :
- sous Linux
#Se positionner dans le répertoire des macros
cd ~/.config/libreoffice/4/user/Scripts/python
#afficher les modifications du dépot distant à récupérer
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git fetch
#mise à jour du dépot local avec le dépot distant
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git checkout master
Déjà sur 'master'
#afficher le résultat de la mise à jour
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git log
commit 14e26fbbbd49e67a5fd1ba1390482ee4df142f49
Author: Franc SERRES <sefran007@gmail.com>
Date: Fri Mar 3 10:23:35 2017 +0100
Initialisation du dépot de macros python
Si vous avez des problèmes à ce stade de la mise à jours du dépot local git
Vous pouvez maintenant continuer sur comment éditer le fichier en cliquant ici
Mise à jour de l'historisation de vos modifications
- sous Linux
#Voir l'état des modifications
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git status
Sur la branche master
Modifications qui ne seront pas validées :
(utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
(utilisez "git checkout -- <fichier>..." pour annuler les modifications dans la copie de travail)
modifié : bonjour.py
aucune modification n''a été ajoutée à la validation (utilisez "git add" ou "git commit -a")
#Voir ce qui a été modifié
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git diff
diff --git a/bonjour.py b/bonjour.py
index 26c654b..2d58594 100644
--- a/bonjour.py
+++ b/bonjour.py
@@ -5,6 +5,7 @@
#Auteur: Franc SERRES
#Licence: https://www.gnu.org/licenses/gpl-3.0.fr.html
+
import uno
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
#Typedeboite :
@@ -32,3 +33,5 @@ def bonjour():
# CANCEL/Retry/Ignore : 6
boîtemessage = boîteàoutils.createMessageBox(fenêtre, MESSAGEBOX, 1, titre, message)
return boîtemessage.execute()
+
+g_exportedScripts = bonjour,
#Indexer les modifications
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git add bonjour.py
#Voir l'état des modifications
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git status
Sur la branche master
Modifications qui seront validées :
(utilisez "git reset HEAD <fichier>..." pour désindexer)
modifié : bonjour.py
#historisation dans le dépot local
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git commit -m 'Ce que vous avez modifié dans bonjour.py'
[master bc0bdbe] Ce que vous avez modifié dans bonjour.py
1 file changed, 3 insertions(+)
#mise à jour des informations entre le dépot local et distant
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git fetch
#ce que vous pouvez mettre à jour
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git log origin/master..
commit bc0bdbe4d2a1b5713ceee270f986cb1334fa64fc
Author: Franc SERRES <sefran007@gmail.com>
Date: Sun Mar 5 23:21:10 2017 +0100
Ce que vous avez modifié dans bonjour.py
#mise à jour du dépot distant
utilisateur@station:~/.config/libreoffice/4/user/Scripts/python$ git push origin master
Décompte des objets: 3, fait.
Delta compression using up to 4 threads.
Compression des objets: 100% (3/3), fait.
Écriture des objets: 100% (3/3), 350 bytes | 0 bytes/s, fait.
Total 3 (delta 2), reused 0 (delta 0)
To file:///srv/git/macros.git
14e26fb..bc0bdbe master -> master
Lancement de l'éditeur
Pour cela ouvrez le menu dans LibreOffice :
Outils/Macros/Gérer les scripts python ou au clavier Alt+Maj+F11
Dans la boite de dialogue Scripts python :
- Sélectionnez avec la souris la liste Mes macros
- Cliquez sur le bouton Menu et sélectionnez le menu Nouveau module
- Dans la boite de saisie Nom du module à créer saisissez bonjour
- Sélectionnez dans la liste Mes macros avec la souris le module bonjour nouvellement créé.
- Cliquez sur le bouton Menu et sélectionnez le menu Modifier
Votre éditeur python s'ouvre avec le fichier bonjour.py
Coder sa macro python
Nous devons d'abord saisir des informations sur le fichier dans l'entête du fichier :
#!
#coding: utf8
#Macro: bonjour.py
#Objectif: Affiche une boîte de dialogue avec le message «Bonjour à tous»
#Auteur: Franc SERRES
#Licence: https://www.gnu.org/licenses/gpl-3.0.fr.html
On charge dans python la bibliothèque pyuno
import uno
On récupère le type de boite de dialogue à afficher
from com.sun.star.awt.MessageBoxType import MESSAGEBOX
#Typedeboite :
# Boite de message : MESSAGEBOX
# Boite d'information : INFOBOX
# Boite d'erreur : ERRORBOX
# Boite d'alerte : WARNINGBOX
# Boite d'interrogation : QUERYBOX
Et on écrit la fonction bonjour()
def bonjour():
#Python s'exécute dans un contexte différent de celle du bureau.
#XSCRIPTCONTEXT récupère le contexte qui va nous autoriser à mettre en place des services de LibreOffice.
#getDesktop() Renvoie le service de gestion du bureau de LibreOffice
bureau = XSCRIPTCONTEXT.getDesktop()
#Récupération du cadre de la fenêtre du bureau qui contient les objets du bureau.
cadre = bureau.getCurrentFrame()
#Récupération de l'objet de la fenêtre
fenêtre = cadre.getContainerWindow()
#Récupération des outils de gestion de la fenêtre
boîteàoutils = fenêtre.getToolkit()
titre = "Python"
message = "Bonjour à tous !"
#Création d'une boîte de dialogue.
boîtemessage = boîteàoutils.createMessageBox(fenêtre, MESSAGEBOX, 1, titre, message)
# boîtemessage = boîteàoutils.createMessageBox(fenêtreapplication, Typedeboite, Typedebouton, titreboîteàmessage, messageboîte)
#
#Typedebouton :
# OK : 1
# OK/CANCEL : 2
# Oui/Non : 3
# Oui/Non/CANCEL : 4
# Retry/CANCEL : 5
# CANCEL/Retry/Ignore : 6
return boîtemessage.execute()
Exécuter la macro
Puis on exécute la macro avec le bouton «Exécuter».
Avec l'extension APSO :
ou avec le gestionaire standard de macro LibreOffice :
Ce qui nous nous donne :