Le Géant Vert en question est libreoffice ;-)
Ici un très simple billet pour vous montrer comment se faire un document OpenOffice depuis un script Python en 5 lignes :P
Le script va se composer comme suit :
- Récupération des données à publier dans le document
- Récupération du document OpenOffice sur lequel va reposer notre génération finale
- « Fusion » des points 1 & 2 ;)
Pour procéder à cette création, on aura besoin comme prérequis de Relatorio, un projet python pour créer des doc ooo/pdf/html, à partir d’objets python.
Donc un petit
pip install relatorio |
fera l’affaire pour disposer de l’armada ;)
1) Récupération des données à publier
Ici je partirai d’un script Python renvoyant un dict, ni plus ni moins.
Le voici , il se nomme « maraicher.py »:
potager = dict( customer = 'Bonduelle', version = '1.12.09', previous_version = '1.12.08', middleware=[ { 'composant': 'Aluminium', 'version': '1.0.2' }, { 'composant': 'Fer', 'version': '1.1.2' } , { 'composant': 'Papier', 'version': '2.55.89' }, ], core=[ { 'composant': 'Petits Pois', 'version': '1.12.13'}, { 'composant': 'Carottes', 'version': '3.45.69'}, { 'composant': 'Poireaux', 'version': '2.98.10'}, { 'composant': 'Pommes de terre', 'version': '9.1'}, ], ) |
2) le document OpenOffice :
Ce dernier contient ce que vous avez ici. C’est en fait un tableau recensant des noms de produit avec leur versions associées.
3) Fusion
La fusion va consister à lire les données du dict et les injecter dans le doc, tout cela se fait, like this (en 5lignes hein ;) :
from relatorio.templates.opendocument import Template from maraicher import potager basic = Template(source=None, filepath='Geant-Vert.odt') basic_generated = basic.generate(o=potager).render() file('Geant-Vert1.odt', 'wb').write(basic_generated.getvalue()) |
le résultat est ici
Bon Appétit ;)
Tweeter

