Macro LibreOffice en python : récupérer la valeur d'un champ
Bonjour,
Après avoir pas mal tourné sur les forums pour trouver une solution et ayant un niveau moyen en anglais, je me demande de m'excuser si il y a une réponse simple à trouver que j'ai loupé et lance ma question ici en espérant que vous voudrez bien m'aider.
J'ai réalisé un script en python pour remplir automatiquement les champs d'une feuille LibreOffice Writer à partir d'informations de .csv
Or il faut que l'utilisateur rentre un identifiant pour que le script puisse s'effectuer.
Imput() ne fonctionnant pas dans LibreOffice Writer je me suis dit que je pourrais utiliser les "Champs" de LibreOffice; l'utilisateur rentrerait l'identifiant dedans et mon script pourrait alors le récupérer (???)
Donc mes questions sont :
- existe-il une autre solution ?
- quel primitives/fonction de l'API de LibreOffice permet d'associer une variable du script à un champ du document Writer (en python) ?
Merci d'avance !
Voila en gros le début de mon script, si ça peut vous aider :
Code:
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
| NomDiag = "DiagWin.csv"
NomPrior = "PriorWin.csv"
NomLev = "Lev.csv"
Chemin = "C:/Users/FRC/Desktop/Auto/"
import os
from os import chdir
import csv
import sys
import webbrowser
chdir(Chemin)
# On récupère la valeur du code entré par l'utilisateur :
Code=input("Entrez le code (expl : 30000-1):") # mais imput ne marche pas sous libre-office, il faut trouver un moyen de récuperer la valeur d'un champ
print(Code)
##########Le remplissage automatique des cases liées au code dans Diag - partie 1############
fichier1 = open(NomDiag, 'r')
Diag = csv.DictReader(fichier1, delimiter = ';',quotechar = '"')
LineCode = None
for line in Diag:
if Code == line["GENERALITES_CODE"] :
LineCode = line
break
if LineCode == None:
print("numero de mare non trouvée dans Diag") # afficher un message d'erreur sous libreO
input("appuyez sur entrer pour sortir du programme")
sys.exit(-1) |