In this example the column width of a table is changed.
/* change the table width */
/* Retrieve the Desktop object, we need its XComponentLoader interface to load a new document*/
oDesktop = UNO.createDesktop() -- get the UNO Desktop service object
xComponentLoader = oDesktop~{%see com.sun.star.frame.XDesktop%XDesktop}~{%see com.sun.star.frame.XComponentLoader%XComponentLoader} -- get componentLoader interface
/* open the blank file */
url = "private:factory/swriter"
xWriterComponent = xComponentLoader~loadComponentFromURL(url, "_blank", 0, .UNO~noProps)
xDocumentFactory = xWriterComponent~{%see com.sun.star.lang.XMultiServiceFactory%XMultiServiceFactory}
xTextDocument = xWriterComponent~{%see com.sun.star.text.XTextDocument%XTextDocument}
xText = xTextDocument~getText()
xTextCursor = xText~createTextCursor()
xPropertySet = xTextCursor~{%see com.sun.star.beans.XPropertySet%xPropertySet}
xDMsf = xTextDocument~{%see com.sun.star.lang.XMultiServiceFactory%XMultiServiceFactory}
/* create the table */
xTextTable = xDMsf~createInstance("{%see com.sun.star.text.TextTable}")~{%see com.sun.star.text.XTextTable%XTextTable}
xTextTable~initialize(1, 2) -- initialize the table
/* insert TextTable in the Text */
xText~insertTextContent(xTextCursor, xTextTable, .false)
/* insert text into the table */
call setCellText "A1", "table width", xTextTable
call setColumnWidth "A1", xTextTable
::requires UNO.cls
-- routine to set the cell text
::routine setCellText
use arg cell, text, xTextTable
xCellText = xTextTable~getCellByName(cell)~{%see com.sun.star.text.XText%XText}
xCellCursor = xCellText~createTextCursor()
cursorProps = xCellCursor~{%see com.sun.star.beans.XPropertySet%XPropertySet}
xCellText~setString(text)
return
-- routine to change the column width of a table
::routine setColumnWidth
use arg cell, xTextTable
xTextTableCursor = xTextTable~createCursorByCellName(cell)
xTableProps=xTextTable~{%see com.sun.star.beans.XPropertySet%xPropertySet}
colRelSum=xTableProps~getPropertyValue("TableColumnRelativeSum") -- usually: 10000
colSeparators=xTableProps~getPropertyValue("TableColumnSeparators") -- total sum
colSeparators[1]~position=trunc(colRelSum*0.70) -- new position of the column separator
-- set the property with the calculated position of the seperator
xTableProps~setPropertyValue("TableColumnSeparators", colSeparators)
return