Cet page présente un exemple simple pour créer un document de type tableur avec OpenOffice. Avant l’exécution il faut lancer libreoffice ou openoffice en mode serveur (les paramètres sont les mêmes).
libreoffice -accept="socket,host=localhost,port=2002;urp;"
import uno # A recopier systématiquement class UnoClient: def __init__(self): localContext = uno.getComponentContext() resolver = localContext.ServiceManager.createInstanceWithContext( "com.sun.star.bridge.UnoUrlResolver", localContext) self.smgr = resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ServiceManager") def create_document(self, app): remoteContext = self.smgr.getPropertyValue("DefaultContext") desktop = self.smgr.createInstanceWithContext("com.sun.star.frame.Desktop", remoteContext) url = "private:factory/{0}".format(app) return desktop.loadComponentFromURL(url, "_blank", 0, ()) def testLibreOffice(data): #creation d'un nouveau classeur dans le logiciel ouvert calc = UnoClient().create_document('scalc') #Accès à la première feuille du classeur sheet = calc.getSheets().getByIndex(0) #Création de valeurs et de formules sheet.getCellByPosition(0, 0).setString("Salut") #Un texte sheet.getCellByPosition(0, 1).setValue(3.14) #Un nombre sheet.getCellByPosition(0, 2).setFormula("=SUM(2+2)") #Une formule #Gestion de la mise en page sheet.getCellByPosition(0, 2).CellBackColor = int("ff7f00", 16) sheet.getCellByPosition(0, 2).CharUnderline = 1 sheet.getCellByPosition(0, 2).CharHeight = 16 sheet.getCellByPosition(0, 2).CharWeight = 150 sheet.getCellByPosition(0, 2).CharPosture = 2
—- dataentry page —- type : Howto technologie_tags : Python, Libreoffice, Openoffice, UNO