我正在尝试创建一个 python 程序(使用 pyUNO )来对 OpenOffice 计算表进行一些更改。
我之前在“接受”模式下启动了 OpenOffice,以便能够从外部程序进行连接。显然,应该像这样简单:
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')
但是AttributeError
当我尝试访问loadComponentFromURL
. 如果我做 a dir(DESKTOP)
,我只看到以下属性/方法:
['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']
我读到有一个错误在做同样的事情,但是在 OpenOffice 3.0 上(我使用的是 OpenOffice 3.1 而不是 Red Hat5.3)。我尝试使用此处所述的解决方法,但它们似乎不起作用。
有任何想法吗?