Oracle
 sql >> Database >  >> RDS >> Oracle

POI Aggiunge .0 durante la lettura di dati numerici da excel

Questo è praticamente identico a una serie di altre domande qui, come restituendo decimale anziché stringa (POI jar)

La risposta è la stessa del uno che ho dato qui :

POI ti sta dando il valore esatto che Excel ha memorizzato nel file. In genere, se scrivi un numero in una cella di Excel, Excel lo memorizzerà come numero con formattazione. POI fornisce supporto per eseguire questa formattazione per te se lo desideri (la maggior parte delle persone non lo fa:vogliono i numeri come numeri in modo che possano usarli)

La classe che stai cercando è DataFormatter . Il tuo codice sarebbe qualcosa come

 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) );
    }
 }