Dette er stort set identisk med en række andre spørgsmål her, såsom returnerende decimal i stedet for streng (POI-krukke)
Svaret er det samme som en jeg gav her :
POI giver dig den nøjagtige værdi, som Excel har gemt i filen. Generelt, hvis du skriver et tal i en Excel-celle, gemmer Excel det som et tal med formatering. POI giver support til at udføre den formatering for dig, hvis du vil have det (de fleste mennesker gør det ikke - de vil have tallene som tal, så de kan bruge dem)
Den klasse, du leder efter, er DataFormatter . Din kode ville være noget lignende
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) );
}
}