Jest to praktycznie identyczne z wieloma innymi pytaniami, takimi jak zwracanie liczby dziesiętnej zamiast ciągu (POI jar)
Odpowiedź jest taka sama jak w jeden podałem tutaj :
Punkt POI podaje dokładną wartość, którą program Excel zapisał w pliku. Ogólnie rzecz biorąc, jeśli wpiszesz liczbę w komórce Excela, Excel zachowa ją jako liczbę z formatowaniem. POI zapewnia wsparcie w zakresie formatowania za Ciebie, jeśli chcesz (większość ludzi tego nie robi - chcą numerów jako liczb, aby mogli z nich korzystać)
Klasa, której szukasz to DataFormatter . Twój kod będzie wyglądał jak
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) );
}
}