Access to Formulas, Values and Errors

From Apache OpenOffice Wiki
< Documentation‎ | DevGuide
Revision as of 12:31, 1 November 2007 by Jsc (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search



The cell interface com.sun.star.table.XCell provides methods to access the value, formula, content type, and error code of a single cell:

 void setValue( [in] double nValue)
 double getValue() 
 void setFormula( [in] string aFormula)
 string getFormula() 
 com::sun::star::table::CellContentType getType()
 long getError()

The value of a cell is a floating-point number. To set a formula to a cell, the whole formula string has to be passed including the leading equality sign. The function names must be in English.

Template:Documentation/Tip

The method getType() returns a value of the enumeration com.sun.star.table.CellContentType indicating the type of the cell content.

The following code fragment shows how to access and modify the content, and formatting of single cells. The xRange is an existing cell range (a com.sun.star.table.XCellRange interface, described in Cell Ranges). The method getCellByPosition() is provided by this interface.

 com.sun.star.beans.XPropertySet xPropSet = null;
 com.sun.star.table.XCell xCell = null;
 
 // *** Access and modify a VALUE CELL ***
 xCell = xRange.getCellByPosition(0, 0);
 // Set cell value.
 xCell.setValue(1234);
 
 // Get cell value.
 double nDblValue = xCell.getValue() * 2;
 xRange.getCellByPosition(0, 1).setValue(nDblValue);
 
 // *** Create a FORMULA CELL and query error type ***
 xCell = xRange.getCellByPosition(0, 2);
 // Set formula string.
 xCell.setFormula("=1/0");
 
 // Get error type.
 boolean bValid = (xCell.getError() == 0);
 // Get formula string.
 String aText = "The formula " + xCell.getFormula() + " is ";
 aText += bValid ? "valid." : "erroneous.";
 
 // *** Insert a TEXT CELL using the XText interface ***
 xCell = xRange.getCellByPosition( 0, 3 );
 com.sun.star.text.XText xCellText = (com.sun.star.text.XText)
     UnoRuntime.queryInterface( com.sun.star.text.XText.class, xCell );
 com.sun.star.text.XTextCursor xTextCursor = xCellText.createTextCursor();
 xCellText.insertString( xTextCursor, aText, false );
 
 // *** Change cell properties ***
 int nValue = bValid ? 0x00FF00 : 0xFF4040;
 xPropSet = (com.sun.star.beans.XPropertySet) UnoRuntime.queryInterface(
     com.sun.star.beans.XPropertySet.class, xCell);
 xPropSet.setPropertyValue("CellBackColor", new Integer(nValue));
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools