Class HSSFDataFormatter


  • public final class HSSFDataFormatter
    extends DataFormatter
    HSSFDataFormatter contains methods for formatting the value stored in an HSSFCell. This can be useful for reports and GUI presentations when you need to display data exactly as it appears in Excel. Supported formats include currency, SSN, percentages, decimals, dates, phone numbers, zip codes, etc.

    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:

    • SSN "000-00-0000"
    • Phone Number "(###) ###-####"
    • Zip plus 4 "00000-0000"

    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 Detail

      • HSSFDataFormatter

        public HSSFDataFormatter​(Locale locale)
        Creates a formatter using the given locale.
      • HSSFDataFormatter

        public HSSFDataFormatter()
        Creates a formatter using the default locale.