import uno
import random
from com.sun.star.beans import PropertyValue
sp_file = 'file:///home/thinker/doc/myslide/OOo_n_report/traf1.ods'
pdf_file = 'file:///home/thinker/doc/myslide/OOo_n_report/traf1.pdf'
# local Component Context
localContext = uno.getComponentContext()
# local Service Manager
lmgr = localContext.ServiceManager
# local Resolver
resolver = lmgr.createInstanceWithContext( \
'com.sun.star.bridge.UnoUrlResolver', localContext )
# remote Component Context
rctx = resolver.resolve( 'uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext' )
# remote Service Manager
rmgr = rctx.ServiceManager
# remote Desktop
rdesktop = rmgr.createInstanceWithContext('com.sun.star.frame.Desktop', rctx)
# load spreadsheets document
doc = rdesktop.loadComponentFromURL(sp_file, '_blank', 0, ())
# get Sheets
sheets = doc.getSheets()
# get Sheet1
sheet1 = sheets.getByIndex(0)
# sheet1 = doc.getByName('Sheet1')
for i in range(30):
# column B
# get Cell
cell = sheet1.getCellByPosition(1, 3 + i)
# put data
cell.setValue(random.randint(100, 500))
# column C
# get Cell
cell = sheet1.getCellByPosition(2, 3 + i)
# put data
cell.setValue(random.randint(5, 30))
pass
#
# refresh charts
#
table_charts = sheet1.getCharts()
names = table_charts.getElementNames()
for name in names:
print name
table_chart = table_charts.getByName(name)
chart = table_chart.getEmbeddedObject()
data = chart.getData();
chart.attachData(data);
pass
# print document
pv = PropertyValue()
pv.Name = 'FilterName'
pv.Value = 'writer_pdf_Export'
pvs = (pv,)
doc.storeToURL(pdf_file, pvs)
# close document
doc.dispose()
评论0