To je prakticky totožné s řadou dalších otázek zde, jako je vrací desetinné místo místo řetězce (POI jar)
Odpověď je stejná jako u jeden jsem dal sem :
POI vám dává přesnou hodnotu, kterou Excel uložil do souboru. Obecně platí, že pokud napíšete číslo do buňky aplikace Excel, Excel jej uloží jako číslo s formátováním. POI poskytuje podporu k tomu, aby toto formátování bylo možné provést za vás, pokud to chcete (většina lidí ne – chtějí čísla jako čísla, aby je mohli používat)
Třída, kterou hledáte, je DataFormatter . Váš kód by byl něco jako
DataFormatter fmt = new DataFormatter();
for (Row r : sheet) {
for (Cell c : r) {
CellReference cr = new CellRefence(c);
System.out.println("Cell " + cr.formatAsString() + " is " +
fmt.formatCellValue(c) );
}
}