Laden eines Dokuments in OpenOffice mit einem externen Python-Programm
Ich versuche, ein Python-Programm (mit pyUNO) zu erstellen, um einige Änderungen an einem OpenOffice-Kalkulationsblatt vorzunehmen.
Ich habe zuvor OpenOffice im "Accept" -Modus gestartet, um von einem externen Programm aus eine Verbindung herstellen zu können. Anscheinend sollte das so einfach sein wie:
import uno
# get the uno component context from the PyUNO runtime
localContext = uno.getComponentContext()
# create the UnoUrlResolver
resolver = localContext.ServiceManager.createInstanceWithContext(
"com.sun.star.bridge.UnoUrlResolver", localContext)
# connect to the running office
ctx = resolver.resolve("uno:socket,host=localhost,port=2002;"
"urp;StarOffice.ComponentContext")
smgr = ctx.ServiceManager
# get the central desktop object
DESKTOP =smgr.createInstanceWithContext("com.sun.star.frame.Desktop", ctx)
#The calling it's not exactly this way, just to simplify the code
DESKTOP.loadComponentFromURL('file.ods')
Aber ich bekomme eineAttributeError
wenn ich versuche zuzugreifenloadComponentFromURL
. Wenn ich einen machedir(DESKTOP)
Ich sehe nur die folgenden Attribute / Methoden:
['ActiveFrame', 'DispatchRecorderSupplier', 'ImplementationId', 'ImplementationName',
'IsPlugged', 'PropertySetInfo', 'SupportedServiceNames', 'SuspendQuickstartVeto',
'Title', 'Types', 'addEventListener', 'addPropertyChangeListener',
'addVetoableChangeListener', 'dispose', 'disposing', 'getImplementationId',
'getImplementationName', 'getPropertySetInfo', 'getPropertyValue',
'getSupportedServiceNames', 'getTypes', 'handle', 'queryInterface',
'removeEventListener', 'removePropertyChangeListener', 'removeVetoableChangeListener',
'setPropertyValue', 'supportsService']
Ich habe gelesen, dass es Fehler gibt, die dasselbe bewirken, jedoch unter OpenOffice 3.0 (ich verwende OpenOffice 3.1 über Red Hat 5.3). Ich habe versucht, die angegebene Problemumgehung zu verwendenHier, aber sie scheinen nicht zu funktionieren.
Irgendwelche Ideen?