Ich versuche ein Python-Programm (mit pyUNO) zu erstellen, um einige Änderungen an einem OpenOffice-Berechnungsblatt vorzunehmen.Laden eines Dokuments auf OpenOffice mit einem externen Python-Programm
Ich habe zuvor OpenOffice auf "akzeptieren" -Modus gestartet, um eine Verbindung von einem externen Programm herstellen zu können. Offenbar sollte so einfach 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 erhalte eine AttributeError
wenn ich versuche, loadComponentFromURL
zuzugreifen. Wenn ich ein dir(DESKTOP)
machen, habe 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 gelesen habe, dass es, wo ein Fehler das gleiche zu tun, aber auf Openoffice 3.0 (Ich bin mit Openoffice 3.1 über Red Hat5.3). Ich habe versucht, die Problemumgehung here zu verwenden, aber sie scheint nicht zu arbeiten.
Irgendwelche Ideen?
Die Methode nicht gefunden, wie ich die Methode ITSEF zu bekommen habe versucht, ohne Parameter aus der interaktiven Shell Aufruf: - (Ich habe auch versucht, es mit vier Parametern zu nennen, ich habe es absichtlich vereinfacht. – Khelben