Запустите libreoffice-calc:
soffice --calc --accept="socket,host=localhost,port=2002;urp;StarOffice.ServiceManager"
Запустите оболочку Python для записи данных в 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
потеряны.
Реальный эффект.
Как исправить мой код, чтобы получить желаемый эффект?