/** This sample function performs all changes on the view. */ public void doSampleFunction() { unoidl.com.sun.star.sheet.XSpreadsheetDocument xDoc = getDocument(); unoidl.com.sun.star.frame.XModel xModel = (unoidl.com.sun.star.frame.XModel)xDoc; unoidl.com.sun.star.frame.XController xController = xModel.getCurrentController(); // --- Spreadsheet view --- // freeze the first column and first two rows unoidl.com.sun.star.sheet.XViewFreezable xFreeze = (unoidl.com.sun.star.sheet.XViewFreezable)xController; if (null != xFreeze) { Console.WriteLine("got xFreeze"); } xFreeze.freezeAtPosition(1, 2); }
/** This sample function performs all changes on the view. */ public void doSampleFunction() { unoidl.com.sun.star.sheet.XSpreadsheetDocument xDoc = getDocument(); unoidl.com.sun.star.frame.XModel xModel = (unoidl.com.sun.star.frame.XModel)xDoc; unoidl.com.sun.star.frame.XController xController = xModel.getCurrentController(); // --- Spreadsheet view --- // freeze the first column and first two rows unoidl.com.sun.star.sheet.XViewFreezable xFreeze = (unoidl.com.sun.star.sheet.XViewFreezable)xController; if (null != xFreeze) { Console.WriteLine("got xFreeze"); } xFreeze.freezeAtPosition(1, 2); // --- View pane --- // get the cell range shown in the second pane and assign // a cell background to them unoidl.com.sun.star.container.XIndexAccess xIndex = (unoidl.com.sun.star.container.XIndexAccess)xController; uno.Any aPane = xIndex.getByIndex(1); unoidl.com.sun.star.sheet.XCellRangeReferrer xRefer = (unoidl.com.sun.star.sheet.XCellRangeReferrer)aPane.Value; unoidl.com.sun.star.table.XCellRange xRange = xRefer.getReferredCells(); unoidl.com.sun.star.beans.XPropertySet xRangeProp = (unoidl.com.sun.star.beans.XPropertySet)xRange; xRangeProp.setPropertyValue( "IsCellBackgroundTransparent", new uno.Any(false)); xRangeProp.setPropertyValue( "CellBackColor", new uno.Any((Int32)0xFFFFCC)); // --- View settings --- // change the view to display green grid lines unoidl.com.sun.star.beans.XPropertySet xProp = (unoidl.com.sun.star.beans.XPropertySet)xController; xProp.setPropertyValue( "ShowGrid", new uno.Any(true)); xProp.setPropertyValue( "GridColor", new uno.Any((Int32)0x00CC00)); // --- Range selection --- // let the user select a range and use it as the view's selection unoidl.com.sun.star.sheet.XRangeSelection xRngSel = (unoidl.com.sun.star.sheet.XRangeSelection)xController; ExampleRangeListener aListener = new ExampleRangeListener(); xRngSel.addRangeSelectionListener(aListener); unoidl.com.sun.star.beans.PropertyValue[] aArguments = new unoidl.com.sun.star.beans.PropertyValue[2]; aArguments[0] = new unoidl.com.sun.star.beans.PropertyValue(); aArguments[0].Name = "Title"; aArguments[0].Value = new uno.Any("Please select a range"); aArguments[1] = new unoidl.com.sun.star.beans.PropertyValue(); aArguments[1].Name = "CloseOnMouseRelease"; aArguments[1].Value = new uno.Any(true); xRngSel.startRangeSelection(aArguments); Monitor.Enter(aListener); try { Monitor.Wait(aListener); // wait until the selection is done } finally { Monitor.Exit(aListener); } xRngSel.removeRangeSelectionListener(aListener); if (aListener.aResult != null && aListener.aResult.Length != 0) { unoidl.com.sun.star.view.XSelectionSupplier xSel = (unoidl.com.sun.star.view.XSelectionSupplier)xController; unoidl.com.sun.star.sheet.XSpreadsheetView xView = (unoidl.com.sun.star.sheet.XSpreadsheetView)xController; unoidl.com.sun.star.sheet.XSpreadsheet xSheet = xView.getActiveSheet(); unoidl.com.sun.star.table.XCellRange xResultRange = xSheet.getCellRangeByName(aListener.aResult); xSel.select( new uno.Any( typeof(unoidl.com.sun.star.table.XCellRange), xResultRange)); } }