Difference between revisions of "Documentation/DevGuide/Spreadsheets/Access to Formulas, Values and Errors"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (FINAL VERSION FOR L10N)
(Added link to Number Format section of development guide.)
Line 63: Line 63:
 
   xPropSet.setPropertyValue("CellBackColor", new Integer(nValue));
 
   xPropSet.setPropertyValue("CellBackColor", new Integer(nValue));
  
Note that since the only data attributes a cell has is value and formula, other types available in OpenOffice.org Calc have to be translated before you can use them. See <idl>com.sun.star.util.NumberFormat</idl> for the standard formats.
+
Note that since the only data attributes a cell has for representing numbers is value and formula, other types available in OpenOffice.org Calc have to be translated before you can use them. See <idl>com.sun.star.util.NumberFormat</idl> for the standard formats.
 
<table>
 
<table>
 
<tr>
 
<tr>
Line 75: Line 75:
 
</table>
 
</table>
  
The format string defines how the number will be shown to the user.
+
How this value will be shown to the user depends on the cell's [[Documentation/DevGuide/OfficeDev/Number_Formats|Number Format]].
  
 
{{PDL1}}
 
{{PDL1}}
  
 
[[Category:Documentation/Developer's Guide/Spreadsheet Documents]]
 
[[Category:Documentation/Developer's Guide/Spreadsheet Documents]]

Revision as of 22:02, 27 August 2010



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));

Note that since the only data attributes a cell has for representing numbers is value and formula, other types available in OpenOffice.org Calc have to be translated before you can use them. See com.sun.star.util.NumberFormat for the standard formats.

NumberFormatMapping to double
DATE1 = one day; day 1 is 1899-12-31
TIMEFraction of a 24h day (1 = 24 hours)
PERCENT1 = 100%
CURRENCY1 = $1,£1 etc
LOGICALFALSE if zero, TRUE otherwise

How this value will be shown to the user depends on the cell's Number Format.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages