org.apache.poi.ss.format
Class CellFormat

java.lang.Object
  extended by org.apache.poi.ss.format.CellFormat

public class CellFormat
extends java.lang.Object

Format a value according to the standard Excel behavior. This "standard" is not explicitly documented by Microsoft, so the behavior is determined by experimentation; see the tests.

An Excel format has up to four parts, separated by semicolons. Each part specifies what to do with particular kinds of values, depending on the number of parts given:

One part (example: [Green]#.##)
If the value is a number, display according to this one part (example: green text, with up to two decimal points). If the value is text, display it as is.
Two parts (example: [Green]#.##;[Red]#.##)
If the value is a positive number or zero, display according to the first part (example: green text, with up to two decimal points); if it is a negative number, display according to the second part (example: red text, with up to two decimal points). If the value is text, display it as is.
Three parts (example: [Green]#.##;[Black]#.##;[Red]#.##)
If the value is a positive number, display according to the first part (example: green text, with up to two decimal points); if it is zero, display according to the second part (example: black text, with up to two decimal points); if it is a negative number, display according to the third part (example: red text, with up to two decimal points). If the value is text, display it as is.
Four parts (example: [Green]#.##;[Black]#.##;[Red]#.##;[@])
If the value is a positive number, display according to the first part (example: green text, with up to two decimal points); if it is zero, display according to the second part (example: black text, with up to two decimal points); if it is a negative number, display according to the third part (example: red text, with up to two decimal points). If the value is text, display according to the fourth part (example: text in the cell's usual color, with the text value surround by brackets).

In addition to these, there is a general format that is used when no format is specified. This formatting is presented by the GENERAL_FORMAT object. TODO Merge this with DataFormatter so we only have one set of code for formatting numbers.

Author:
Ken Arnold, Industrious Media LLC

Field Summary
static CellFormat GENERAL_FORMAT
          Format a value as it would be were no format specified.
 
Method Summary
 CellFormatResult apply(Cell c)
          Fetches the appropriate value from the cell, and returns the result of applying it to the appropriate format.
 CellFormatResult apply(javax.swing.JLabel label, Cell c)
          Fetches the appropriate value from the cell, and uses the result, setting the text and color of a label before returning the result.
 CellFormatResult apply(javax.swing.JLabel label, java.lang.Object value)
          Uses the result of applying this format to the value, setting the text and color of a label before returning the result.
 CellFormatResult apply(java.lang.Object value)
          Returns the result of applying the format to the given value.
 boolean equals(java.lang.Object obj)
          Returns true if the other object is a CellFormat object with the same format.
static CellFormat getInstance(java.lang.String format)
          Returns a CellFormat that applies the given format.
 int hashCode()
          Returns a hash code for the format.
static int ultimateType(Cell cell)
          Returns the ultimate cell type, following the results of formulas.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GENERAL_FORMAT

public static final CellFormat GENERAL_FORMAT
Format a value as it would be were no format specified. This is also used when the format specified is General.

Method Detail

getInstance

public static CellFormat getInstance(java.lang.String format)
Returns a CellFormat that applies the given format. Two calls with the same format may or may not return the same object.

Parameters:
format - The format.
Returns:
A CellFormat that applies the given format.

apply

public CellFormatResult apply(java.lang.Object value)
Returns the result of applying the format to the given value. If the value is a number (a type of Number object), the correct number format type is chosen; otherwise it is considered a text object.

Parameters:
value - The value
Returns:
The result, in a CellFormatResult.

apply

public CellFormatResult apply(Cell c)
Fetches the appropriate value from the cell, and returns the result of applying it to the appropriate format. For formula cells, the computed value is what is used.

Parameters:
c - The cell.
Returns:
The result, in a CellFormatResult.

apply

public CellFormatResult apply(javax.swing.JLabel label,
                              java.lang.Object value)
Uses the result of applying this format to the value, setting the text and color of a label before returning the result.

Parameters:
label - The label to apply to.
value - The value to process.
Returns:
The result, in a CellFormatResult.

apply

public CellFormatResult apply(javax.swing.JLabel label,
                              Cell c)
Fetches the appropriate value from the cell, and uses the result, setting the text and color of a label before returning the result.

Parameters:
label - The label to apply to.
c - The cell.
Returns:
The result, in a CellFormatResult.

ultimateType

public static int ultimateType(Cell cell)
Returns the ultimate cell type, following the results of formulas. If the cell is a Cell.CELL_TYPE_FORMULA, this returns the result of Cell.getCachedFormulaResultType(). Otherwise this returns the result of Cell.getCellType().

Parameters:
cell - The cell.
Returns:
The ultimate type of this cell.

equals

public boolean equals(java.lang.Object obj)
Returns true if the other object is a CellFormat object with the same format.

Overrides:
equals in class java.lang.Object
Parameters:
obj - The other object.
Returns:
true if the two objects are equal.

hashCode

public int hashCode()
Returns a hash code for the format.

Overrides:
hashCode in class java.lang.Object
Returns:
A hash code for the format.


Copyright 2012 The Apache Software Foundation or its licensors, as applicable.