public final class HSSFDataFormatter extends DataFormatter
Internally, formats will be implemented using subclasses of Format
such as DecimalFormat
and SimpleDateFormat
. Therefore the formats used by this class must obey the same pattern rules as these Format subclasses. This means that only legal number pattern characters ("0", "#", ".", "," etc.) may appear in number formats. Other characters can be inserted before or after the number pattern to form a prefix or suffix.
For example the Excel pattern "$#,##0.00 "USD"_);($#,##0.00 "USD")"
will be correctly formatted as "$1,000.00 USD" or "($1,000.00 USD)". However the pattern "00-00-00"
is incorrectly formatted by DecimalFormat as "000000--". For Excel formats that are not compatible with DecimalFormat, you can provide your own custom Format
implementation via HSSFDataFormatter.addFormat(String,Format)
. The following custom formats are already provided by this class:
If the Excel format pattern cannot be parsed successfully, then a default format will be used. The default number format will mimic the Excel General format: "#" for whole numbers and "#.##########" for decimal numbers. You can override the default format pattern with HSSFDataFormatter.setDefaultNumberFormat(Format)
. Note: the default format will only be used when a Format cannot be created from the cell's data format string.
Constructor and Description |
---|
HSSFDataFormatter()
Creates a formatter using the
default locale .
|
HSSFDataFormatter(java.util.Locale locale)
Creates a formatter using the given locale.
|
addFormat, createFormat, formatCellValue, formatCellValue, formatCellValue, formatRawCellContents, formatRawCellContents, getDefaultFormat, getLocaleChangedObservable, setDefaultNumberFormat, setExcelStyleRoundingMode, setExcelStyleRoundingMode, updateLocale
Copyright 2021 The Apache Software Foundation or its licensors, as applicable.