我試圖創建一個python程序(使用pyUNO)在OpenOffice calc頁面上進行一些更改。使用外部Python程序在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
。如果我做一個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以上紅帽子5.3)。我試圖使用here這個解決方法,但他們似乎沒有工作。
任何想法?
的方法看是不是發現,因爲我一直在試圖獲得方法itsef,稱不從交互式shell參數: - (我也試着用四個參數來調用它,我有意地簡化它。 – Khelben 2010-02-02 09:55:48