Ouvrir un fichier en tant que modèle avec un script python - probleme sur l'objet PropertyValue

Bonjour,

je cherche à ouvrir un classeur ordinaire modèle.ods dans un script python pour libre office.
Je sais le faire en basic mais j’ai un souci pour la définition des propriétés en python.

Je joins le code en basic et ce que j’ai fait en python.
Si quelqu’un peut m’aider, merci

code en libre office basic
Dim monDoc as Object, adresseDoc as String
dim propFich(0) as New com.sun.star.beans.PropertyValue
propFich(0).Name = ”AsTemplate”
propFich(0).Value = True
monDoc = StarDesktop.loadComponentFromURL(adresseDoc, “_blank”, 0, propFich())

en python, j’ai écrit :

from com.sun.star.beans import PropertyValue
propFich = PropertyValue()
propFich.Name = “AsTemplate”
propFich.Value = uno.Bool(True)
monBureau = XSCRIPTCONTEXT.getDesktop()
monDoc = monBureau.loadComponentFromURL(adresseDoc, “_blank”, 0, propFich)

mais ça plante sur la dernière ligne, c’est propFich qui pose problème

J’ai résolu mon problème :
en Python, il faut que les propriétés soit sous le forme d’un tuple (tableau dans basic) ; voici un code qui fonctionne
propFich1 = PropertyValue()
propFich1.Name = “AsTemplate”
propFich1.Value = True
propFich = (propFich1,) # Tuple a un seul élément
monBureau = XSCRIPTCONTEXT.getDesktop()
monDoc = monBureau.loadComponentFromURL(adresseDoc, “_blank”, 0, propFich)

Bonsoir,

Comme en Basic !
Cordialement,
JM

D’accord, je comprends.
Je ne l’avais pas vu comme cela car la documentation sur Basic (livre de B Marcelly notamment) n’aborde pas la notion de tuple mais de tableau.

Bonsoir,
En fait, c’est une liste (ou un tableau) de structures a deux composantes, dont tu as rempli l’élément 0.
Dans certains cas, on a besoin de plus d’éléments.
C’est vrai que c’est perturbant, puisqu’un tuple n’est pas modifiable…