public class CellFormat
extends java.lang.Object
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:
[Green]#.##
)[Green]#.##;[Red]#.##
)[Green]#.##;[Black]#.##;[Red]#.##
)[Green]#.##;[Black]#.##;[Red]#.##;[@]
)
A given format part may specify a given Locale, by including something
like [$$-409]
or [$£-809]
or [$-40C]
. These
are (currently) largely ignored. You can use DateFormatConverter
to look these up into Java Locales if desired.
In addition to these, there is a general format that is used when no format
is specified.
TODO Merge this with DataFormatter
so we only have one set of
code for formatting numbers.
TODO Re-use parts of this logic with ConditionalFormatting
/
ConditionalFormattingRule
for reporting stylings which do/don't apply
TODO Support the full set of modifiers, including alternate calendars and
native character numbers, as documented at https://help.libreoffice.org/Common/Number_Format_Codes
Modifier and Type | Method and Description |
---|---|
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.util.Locale locale,
java.lang.String format)
Returns a CellFormat that applies the given 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 CellType |
ultimateType(Cell cell)
Returns the ultimate cell type, following the results of formulas.
|
public static CellFormat getInstance(java.lang.String format)
format
- The format.public static CellFormat getInstance(java.util.Locale locale, java.lang.String format)
locale
- The locale.format
- The format.public CellFormatResult apply(java.lang.Object value)
Number
object), the correct number
format type is chosen; otherwise it is considered a text object.value
- The valueCellFormatResult
.public CellFormatResult apply(Cell c)
c
- The cell.CellFormatResult
.public CellFormatResult apply(javax.swing.JLabel label, java.lang.Object value)
label
- The label to apply to.value
- The value to process.CellFormatResult
.public CellFormatResult apply(javax.swing.JLabel label, Cell c)
label
- The label to apply to.c
- The cell.CellFormatResult
.public static CellType ultimateType(Cell cell)
CellType.FORMULA
, this returns the result of
Cell.getCachedFormulaResultType()
. Otherwise this returns the
result of Cell.getCellType()
.cell
- The cell.public boolean equals(java.lang.Object obj)
true
if the other object is a CellFormat object
with the same format.equals
in class java.lang.Object
obj
- The other object.true
if the two objects are equal.public int hashCode()
hashCode
in class java.lang.Object
Copyright 2022 The Apache Software Foundation or its licensors, as applicable.