width column width change table column width Nicole Scholz How can I change the width of a table column

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