blob: 2b8ddba0dd4dc3aa15ca89ff362a88d7f215621b [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
import com.sun.star.beans.PropertyValue;
import com.sun.star.beans.XPropertySet;
import com.sun.star.uno.XComponentContext;
import com.sun.star.comp.helper.Bootstrap;
import com.sun.star.container.XEnumeration;
import com.sun.star.container.XEnumerationAccess;
import com.sun.star.frame.XComponentLoader;
import com.sun.star.frame.XController;
import com.sun.star.frame.XModel;
import com.sun.star.lang.XComponent;
import com.sun.star.lang.XMultiComponentFactory;
import com.sun.star.sheet.XCellAddressable;
import com.sun.star.sheet.XCellRangesQuery;
import com.sun.star.sheet.XSheetCellRanges;
import com.sun.star.sheet.XSpreadsheet;
import com.sun.star.sheet.XSpreadsheetDocument;
import com.sun.star.sheet.XSpreadsheetView;
import com.sun.star.sheet.XSpreadsheets;
import com.sun.star.table.XCell;
import com.sun.star.uno.UnoRuntime;
public class FirstLoadComponent {
/** Creates a new instance of FirstLoadComponent */
public FirstLoadComponent() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
// get the remote office component context
XComponentContext xRemoteContext = Bootstrap.bootstrap();
if (xRemoteContext == null) {
System.err.println("ERROR: Could not bootstrap default Office.");
}
XMultiComponentFactory xRemoteServiceManager = xRemoteContext.getServiceManager();
Object desktop = xRemoteServiceManager.createInstanceWithContext(
"com.sun.star.frame.Desktop", xRemoteContext);
XComponentLoader xComponentLoader = (XComponentLoader)
UnoRuntime.queryInterface(XComponentLoader.class, desktop);
PropertyValue[] loadProps = new PropertyValue[0];
XComponent xSpreadsheetComponent = xComponentLoader.loadComponentFromURL("private:factory/scalc", "_blank", 0, loadProps);
XSpreadsheetDocument xSpreadsheetDocument = (XSpreadsheetDocument)
UnoRuntime.queryInterface(XSpreadsheetDocument.class,
xSpreadsheetComponent);
XSpreadsheets xSpreadsheets = xSpreadsheetDocument.getSheets();
xSpreadsheets.insertNewByName("MySheet", (short)0);
com.sun.star.uno.Type elemType = xSpreadsheets.getElementType();
System.out.println(elemType.getTypeName());
Object sheet = xSpreadsheets.getByName("MySheet");
XSpreadsheet xSpreadsheet = (XSpreadsheet)UnoRuntime.queryInterface(
XSpreadsheet.class, sheet);
XCell xCell = xSpreadsheet.getCellByPosition(0, 0);
xCell.setValue(21);
xCell = xSpreadsheet.getCellByPosition(0, 1);
xCell.setValue(21);
xCell = xSpreadsheet.getCellByPosition(0, 2);
xCell.setFormula("=sum(A1:A2)");
XPropertySet xCellProps = (XPropertySet)UnoRuntime.queryInterface(
XPropertySet.class, xCell);
xCellProps.setPropertyValue("CellStyle", "Result");
XModel xSpreadsheetModel = (XModel)UnoRuntime.queryInterface(
XModel.class, xSpreadsheetComponent);
XController xSpreadsheetController = xSpreadsheetModel.getCurrentController();
XSpreadsheetView xSpreadsheetView = (XSpreadsheetView)
UnoRuntime.queryInterface(XSpreadsheetView.class,
xSpreadsheetController);
xSpreadsheetView.setActiveSheet(xSpreadsheet);
// *********************************************************
// example for use of enum types
xCellProps.setPropertyValue("VertJustify",
com.sun.star.table.CellVertJustify.TOP);
// *********************************************************
// example for a sequence of PropertyValue structs
// create an array with one PropertyValue struct, it contains
// references only
loadProps = new PropertyValue[1];
// instantiate PropertyValue struct and set its member fields
PropertyValue asTemplate = new PropertyValue();
asTemplate.Name = "AsTemplate";
asTemplate.Value = new Boolean(true);
// assign PropertyValue struct to array of references for PropertyValue
// structs
loadProps[0] = asTemplate;
// load calc file as template
//xSpreadsheetComponent = xComponentLoader.loadComponentFromURL(
// "file:///c:/temp/DataAnalysys.ods", "_blank", 0, loadProps);
// *********************************************************
// example for use of XEnumerationAccess
XCellRangesQuery xCellQuery = (XCellRangesQuery)
UnoRuntime.queryInterface(XCellRangesQuery.class, sheet);
XSheetCellRanges xFormulaCells = xCellQuery.queryContentCells(
(short)com.sun.star.sheet.CellFlags.FORMULA);
XEnumerationAccess xFormulas = xFormulaCells.getCells();
XEnumeration xFormulaEnum = xFormulas.createEnumeration();
while (xFormulaEnum.hasMoreElements()) {
Object formulaCell = xFormulaEnum.nextElement();
xCell = (XCell)UnoRuntime.queryInterface(XCell.class, formulaCell);
XCellAddressable xCellAddress = (XCellAddressable)
UnoRuntime.queryInterface(XCellAddressable.class, xCell);
System.out.println("Formula cell in column " +
xCellAddress.getCellAddress().Column
+ ", row " + xCellAddress.getCellAddress().Row
+ " contains " + xCell.getFormula());
}
}
catch (java.lang.Exception e){
e.printStackTrace();
}
finally {
System.exit( 0 );
}
}
}
// import com.sun.star.uno.UnoRuntime;
// import com.sun.star.uno.XComponentContext;
// import com.sun.star.lang.XMultiComponentFactory;
// import com.sun.star.lang.XComponent;
// import com.sun.star.beans.XPropertySet;
// import com.sun.star.beans.PropertyValue;
// import com.sun.star.sheet.XSpreadsheetDocument;
// import com.sun.star.sheet.XSpreadsheets;
// import com.sun.star.sheet.XSpreadsheet;
// import com.sun.star.sheet.XSpreadsheetView;
// import com.sun.star.sheet.XCellRangesQuery;
// import com.sun.star.sheet.XSheetCellRanges;
// import com.sun.star.sheet.XCellAddressable;
// import com.sun.star.table.XCell;
// import com.sun.star.frame.XModel;
// import com.sun.star.frame.XController;
// import com.sun.star.frame.XComponentLoader;
// import com.sun.star.container.XEnumeration;
// import com.sun.star.container.XEnumerationAccess;
// import com.sun.star.uno.AnyConverter;
// /**
// *
// * @author dschulten
// */
// public class FirstLoadComponent {
// /** Creates a new instance of FirstLoadComponent */
// public FirstLoadComponent() {
// }
// /**
// * @param args the command line arguments
// */
// private XComponentContext xRemoteContext = null;
// private XMultiComponentFactory xRemoteServiceManager = null;
// public static void main(String[] args) {
// FirstLoadComponent firstLoadComponent1 = new FirstLoadComponent();
// try {
// firstLoadComponent1.useConnection();
// }
// catch (java.lang.Exception e){
// System.out.println(e.getMessage());
// e.printStackTrace();
// }
// finally {
// System.exit(0);
// }
// }
// private void useConnection() throws java.lang.Exception {
// try {
// // get the remote office component context
// xRemoteContext = com.sun.star.comp.helper.Bootstrap.bootstrap();
// System.out.println("Connected to a running office ...");
// xRemoteServiceManager = xRemoteContext.getServiceManager();
// }
// catch( Exception e) {
// e.printStackTrace();
// System.exit(1);
// }
// try {
// Object desktop = xRemoteServiceManager.createInstanceWithContext(
// "com.sun.star.frame.Desktop", xRemoteContext);
// XComponentLoader xComponentLoader = (XComponentLoader)
// UnoRuntime.queryInterface(XComponentLoader.class, desktop);
// PropertyValue[] loadProps = new PropertyValue[0];
// XComponent xSpreadsheetComponent = xComponentLoader.loadComponentFromURL("private:factory/scalc", "_blank", 0, loadProps);
// XSpreadsheetDocument xSpreadsheetDocument = (XSpreadsheetDocument)
// UnoRuntime.queryInterface(XSpreadsheetDocument.class,
// xSpreadsheetComponent);
// XSpreadsheets xSpreadsheets = xSpreadsheetDocument.getSheets();
// xSpreadsheets.insertNewByName("MySheet", (short)0);
// com.sun.star.uno.Type elemType = xSpreadsheets.getElementType();
// System.out.println(elemType.getTypeName());
// Object sheet = xSpreadsheets.getByName("MySheet");
// XSpreadsheet xSpreadsheet = (XSpreadsheet)UnoRuntime.queryInterface(
// XSpreadsheet.class, sheet);
// XCell xCell = xSpreadsheet.getCellByPosition(0, 0);
// xCell.setValue(21);
// xCell = xSpreadsheet.getCellByPosition(0, 1);
// xCell.setValue(21);
// xCell = xSpreadsheet.getCellByPosition(0, 2);
// xCell.setFormula("=sum(A1:A2)");
// XPropertySet xCellProps = (XPropertySet)UnoRuntime.queryInterface(
// XPropertySet.class, xCell);
// xCellProps.setPropertyValue("CellStyle", "Result");
// XModel xSpreadsheetModel = (XModel)UnoRuntime.queryInterface(
// XModel.class, xSpreadsheetComponent);
// XController xSpreadsheetController = xSpreadsheetModel.getCurrentController();
// XSpreadsheetView xSpreadsheetView = (XSpreadsheetView)
// UnoRuntime.queryInterface(XSpreadsheetView.class,
// xSpreadsheetController);
// xSpreadsheetView.setActiveSheet(xSpreadsheet);
// // *********************************************************
// // example for use of enum types
// xCellProps.setPropertyValue("VertJustify",
// com.sun.star.table.CellVertJustify.TOP);
// // *********************************************************
// // example for a sequence of PropertyValue structs
// // create an array with one PropertyValue struct, it contains
// // references only
// loadProps = new PropertyValue[1];
// // instantiate PropertyValue struct and set its member fields
// PropertyValue asTemplate = new PropertyValue();
// asTemplate.Name = "AsTemplate";
// asTemplate.Value = new Boolean(true);
// // assign PropertyValue struct to array of references for PropertyValue
// // structs
// loadProps[0] = asTemplate;
// // load calc file as template
// //xSpreadsheetComponent = xComponentLoader.loadComponentFromURL(
// // "file:///c:/temp/DataAnalysys.ods", "_blank", 0, loadProps);
// // *********************************************************
// // example for use of XEnumerationAccess
// XCellRangesQuery xCellQuery = (XCellRangesQuery)
// UnoRuntime.queryInterface(XCellRangesQuery.class, sheet);
// XSheetCellRanges xFormulaCells = xCellQuery.queryContentCells(
// (short)com.sun.star.sheet.CellFlags.FORMULA);
// XEnumerationAccess xFormulas = xFormulaCells.getCells();
// XEnumeration xFormulaEnum = xFormulas.createEnumeration();
// while (xFormulaEnum.hasMoreElements()) {
// Object formulaCell = xFormulaEnum.nextElement();
// xCell = (XCell)UnoRuntime.queryInterface(XCell.class, formulaCell);
// XCellAddressable xCellAddress = (XCellAddressable)
// UnoRuntime.queryInterface(XCellAddressable.class, xCell);
// System.out.println("Formula cell in column " +
// xCellAddress.getCellAddress().Column
// + ", row " + xCellAddress.getCellAddress().Row
// + " contains " + xCell.getFormula());
// }
// }
// catch( com.sun.star.lang.DisposedException e ) { //works from Patch 1
// xRemoteContext = null;
// throw e;
// }
// }
// }