note : ce wiki transforme le terme LibreOffice en lien intra-wiki, aussi le terme libreOffice (sans majuscule au début) sera utilisé pour l'éviter...
Programmation LibreOffice : les macros
LibreOffice est programmable en Basic et Python, d'autres langages sont possibles (java, rust ? Go ?)
Q LibO_20251111_A : les macros ne sont enregistrées qu'en Basic ? Comment les enregistrer en Python (au moins) ?
Q LibO_20251111_B : quels autres langages sont possibles pour les Macros ?
Trouver une description réalisable par les macros, correspondant à leur utilisation.
Description 1 : automatiser un ensemble d'actions répétitives pour pouvoir les répéter automatiquement, un peu de paramétrage (saisie utilisateur), sinon utiliser format date YYYYMMDDHH24MISS pour nommage à la seconde pour unicité des fichiers générés
Description 2 : pour utilisation avancée, trouver documentation sur libreOffice Uno
Démarche d'utilisation des macros retenue
essayer enregistrement de macrostrouver des exemples : noter URL
voir interactions possibles entre Write et Calc (voire Impress).
essayer sur un exemple trivial :
- dans Calc : charger un fichier CSV, afficher une représentation graphique
- dans Write : présenter un tableau de données, ajouter automatiquement le graphique réalisé par Calc avec description, capacité à actualiser le graphique lorsque
Fonction d'enregistrement de macros
Pour démarrer avec une structure déjà constituée, autant utiliser l'outil d'enregistrement de Macros, cela permettra de rejouer une séquence d'actions.
https://help.libreoffice.org/latest/fr/text/shared/guide/macro_recording.html?DbPAR=BASIC
Menu Outils / Macros / enregistrer une macro : n'apparaît qu'une fois qu'on l'a activé par Menu Outils / Options / LibreOffice / Avancé / Fonctionnalités optionnelles : Activer l'enregistreur de macro (peut être limité)
Saisissez un nom pour la nouvelle macro dans la zone de texte Nom de la macro. N'utilisez pas les mots de passe Basic en tant que nom. => le terme keywords est sans doute mal traduit par mots de passe au lieu de mots-clés, trouver version anglaise et
Les Outils de développement sont visibles dans tous les document LibreOffice Writer, Calc, Impress et Draw
Exemples d'utilisation de macros LibreOffice
exemple 1 : macro libreOffice pour insérer graphique dans calc à partir fichier CSV
objectif : enregistrer une macro simple ne travaillant que dans calc, permettant représentation graphique fixe
exemple 2 : insérer graphique généré par calc dans document Write
objectif : voir interactions entre writer et calc
ne pas se baser sur un CSV mais sur un tableau dans Writer, ajouter une légende pour ajouter graphique à liste des illustrations (et actualiser l'index correspondant)
exemple 3 : récupérer données et générer automatiquement un document mis en forme
objectif : montrer l'utilisation de macros avec Uno, permettant de limiter les interactions avec un utilisateur (tout en automtique)
récupérer les données formatées, via une API (appel de page web ?), filtrer les données utiles, faire la représentation graphique, l'insérer dans nouveau document formaté
Liste de questions numérotées
LibO_20251111_B - O - quels autres langages sont possibles pour les Macros ? Basic + Python de base, d'autres langages sont possibles (java, rust ? Go ?)LibO_20251111_A - O - les macros ne sont enregistrées qu'en Basic ? Comment les enregistrer en Python (au moins) ?