2 try to overcome limits on document user defined attributes
4 from com.sun.star.beans
import PropertyAttribute
5 from com.sun.star.beans
import PropertyValue
6 from com.sun.star.beans
import PropertyExistException, UnknownPropertyException
7 from com.sun.star.lang
import IllegalArgumentException
13 userProps = oDoc.DocumentProperties.UserDefinedProperties
20 userProps.addProperty(name, PropertyAttribute.REMOVABLE, sValue)
21 except PropertyExistException:
24 userProps.setPropertyValue(name, sValue)
25 except IllegalArgumentException:
27 userProps.removeProperty(name)
28 userProps.addProperty(name, PropertyAttribute.REMOVABLE, sValue)
29 userProps.setPropertyValue(name, sValue)
34 userProps = oDoc.DocumentProperties.UserDefinedProperties
37 sValue = userProps.getPropertyValue(name)
38 return PersistUtils.string2val(sValue)
47 userProps = oDoc.DocumentProperties.UserDefinedProperties
51 userProps.removeProperty(name)
52 except UnknownPropertyException:
58 baseName : nome base per il blocco dati. Viene preposto ai dati prima di salvarli
59 data : un dizionario contenente una serie di chiave:valore. Le chiavi devono essere stringhe
61 for key, value
in data.items():
67 baseName : prefisso per il blocco di dati richiesto
68 Vengono lette TUTTE le proprietà inizianti con baseName
69 e restituite sotto forma di dizionario { key: value... }
71 userProps = oDoc.DocumentProperties.UserDefinedProperties
72 props = userProps.PropertySetInfo.Properties
75 if prop.Name.startswith(baseName +
'.'):
76 name = prop.Name[len(baseName) + 1:]
84 url = uno.systemPathToFileUrl(filePath)
113 pth =
'private:factory/scalc'
115 return desktop.loadComponentFromURL(pth,
'_default', 0, parms)