【发布时间】:2020-08-31 01:12:54
【问题描述】:
启动 libreoffice-calc:
soffice --calc --accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager"
启动 python shell 将数据写入calc:
import uno
localContext = uno.getComponentContext()
resolver = localContext.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", localContext)
context = resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
svcmgr = context.ServiceManager
desktop = svcmgr.createInstanceWithContext("com.sun.star.frame.Desktop", context)
oDoc = desktop.loadComponentFromURL( "private:factory/scalc","_blank", 0, () )
oSheet = oDoc.getSheets().getByIndex(0)
oRange = oSheet.getCellRangeByName("A1:C3")
将数据写入oRange。
oRange.setDataArray((('a1','a2','a3'),('b1','b2','b3'),('c1','c2','c3'),))
计算现在的外观:
我想合并oRange 中的所有数据,并将其格式化为垂直和水平对齐。
我想要的编辑效果calc.
oRange.merge()
oCell = oSheet.getCellByPosition(0, 0)
oCell.HoriJustify = 2
oCell.VertJustify = 2
垂直和水平对齐的合并数据,许多单元格中的先前数据b1-c1 和a2-c2 和a3-c3 丢失。
真实的效果。
如何修复我的代码以获得预期的效果?
【问题讨论】:
标签: python-3.x merge libreoffice-calc uno