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 ;)
edit du 25/03/2015 : mise à jour du lien vers le projet relatorio https://code.google.com/p/python-relatorio/