Difference between revisions of "Documentation/DevGuide/Spreadsheets/Example: Adding a New Spreadsheet"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Robot: Changing Category:Spreadsheet Documents)
m (Robot: Changing Category:Documentation/Developers Guide/Spreadsheet Documents)
Line 59: Line 59:
 
{{PDL1}}
 
{{PDL1}}
  
[[Category:Documentation/Developers Guide/Spreadsheet Documents]]
+
[[Category:Documentation/Developer's Guide/Spreadsheet Documents]]

Revision as of 10:25, 5 June 2008



The following helper method opens a new spreadsheet document component. The method getRemoteServiceManager() retrieves a connection. Refer to chapter First Steps for additional information.

 import com.sun.star.lang.XComponent;
 import com.sun.star.frame.XComponentLoader;
 import com.sun.star.beans.PropertyValue;
 
 ...
 
 protected XComponent newSpreadsheetComponent() throws java.lang.Exception {
     String loadUrl = "private:factory/scalc";
     xRemoteServiceManager = this.getRemoteServiceManager(unoUrl);
     Object desktop = xRemoteServiceManager.createInstanceWithContext(
         "com.sun.star.frame.Desktop", xRemoteContext);
     XComponentLoader xComponentLoader = (XComponentLoader)UnoRuntime.queryInterface(
         XComponentLoader.class, desktop);
     PropertyValue[] loadProps = new PropertyValue[0];
     return xComponentLoader.loadComponentFromURL(loadUrl, "_blank", 0, loadProps); 
 }

Our helper returns a com.sun.star.lang.XComponent interface for the recently loaded document. Now the XComponent is passed to the following method insertSpreadsheet() to add a new spreadsheet to our document.

 import com.sun.star.sheet.XSpreadsheetDcoument;
 import com.sun.star.sheet.XSpreadsheet; 
 
 ...
 
 /** Inserts a new empty spreadsheet with the specified name.
     @param xSheetComponent The XComponent interface of a loaded document object
     @param aName The name of the new sheet.
     @param nIndex The insertion index.
     @return The XSpreadsheet interface of the new sheet.
  */
 public XSpreadsheet insertSpreadsheet(
         XComponent xSheetComponent, String aName, short nIndex) {
     XSpreadsheetDocument xDocument = (XSpreadsheetDocument)UnoRuntime.queryInterface(
         XSpreadsheetDocument.class, xSheetComponent);
 
     // Collection of sheets
     com.sun.star.sheet.XSpreadsheets xSheets = xDocument.getSheets();
     com.sun.star.sheet.XSpreadsheet xSheet = null;
     
     try {
         xSheets.insertNewByName(aName, nIndex);
         xSheet = xSheets.getByName(aName);
     } catch (Exception ex) {
     }
   
     return xSheet;
 }
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools