OpenOffice Java code format table cells
Posted: Thu Aug 24, 2017 6:19 am
Hi,
I am creating a table using openoffice in Java and want to format the table cell contents like giving background color, change font style, aligning etc.
My code is
Please help me in doing that.
I am creating a table using openoffice in Java and want to format the table cell contents like giving background color, change font style, aligning etc.
My code is
Code: Select all
XMultiServiceFactory xMSF = ( XMultiServiceFactory ) UnoRuntime.queryInterface(XMultiServiceFactory.class, xdocument);
// Creating a table with 2 rows and 2 columns
XTextTable xTextTable = ( XTextTable ) UnoRuntime.queryInterface(XTextTable.class, xMSF.createInstance( "com.sun.star.text.TextTable" ) );
xTextTable.initialize( 2, 2); // rows, cols
// insert table in the xText
xText.insertTextContent(xText.getEnd(), xTextTable, false);
XPropertySet xPS1 = ( XPropertySet ) UnoRuntime.queryInterface(
XPropertySet.class, xTextTable );
// Get table Width and TableColumnRelativeSum properties values
int iWidth = ( Integer ) xPS1.getPropertyValue( "Width" );
short sTableColumnRelativeSum = ( Short ) xPS1.getPropertyValue( "TableColumnRelativeSum" );
// Calculate conversion ration
double dRatio = ( double ) sTableColumnRelativeSum / ( double ) iWidth;
// Convert our 20 mm (2000) to unknown ( relative ) units
double dRelativeWidth = ( double ) 25000 * dRatio;
// Get table column separators
Object xObj = xPS1.getPropertyValue( "TableColumnSeparators" );
TableColumnSeparator[] xSeparators = ( TableColumnSeparator[] )UnoRuntime.queryInterface(
TableColumnSeparator[].class, xObj );
// Last table column separator position
double dPosition = sTableColumnRelativeSum - dRelativeWidth;
// Set set new position for all column separators
for ( int i = xSeparators.length - 1 ; i >= 0 ; i-- )
{
xSeparators[i].Position = (short) Math.ceil( dPosition );
dPosition -= dRelativeWidth;
}
// Do not forget to set TableColumnSeparators back! Otherwise, it doesn't work.
xPS1.setPropertyValue( "TableColumnSeparators", xSeparators );
XCellRange xCellRangeHeader = (XCellRange) UnoRuntime.queryInterface(XCellRange.class, xTextTable);
XCell xCellHeader = null;
XText xHeaderText = null;
xCellHeader = xCellRangeHeader.getCellByPosition(0,0); // cols, rows
xHeaderText = (XText) UnoRuntime.queryInterface(XText.class, xCellHeader);
xHeaderText.setString("Records Center Total Capacity");
xCellHeader = xCellRangeHeader.getCellByPosition(1,0); // cols, rows
xHeaderText = (XText) UnoRuntime.queryInterface(XText.class, xCellHeader);
xHeaderText.setString(""+RecordCentrecapacity);
xCellHeader = xCellRangeHeader.getCellByPosition(0,1); // cols, rows
xHeaderText = (XText) UnoRuntime.queryInterface(XText.class, xCellHeader);
xHeaderText.setString("Current Inventory For Week Ending");
xCellHeader = xCellRangeHeader.getCellByPosition(1,1); // cols, rows
xHeaderText = (XText) UnoRuntime.queryInterface(XText.class, xCellHeader);
xHeaderText.setString(""+currentTotalInventory);