Estoy usando Apache POI 3.9 para XLS/XLSX procesamiento de archivos.

XLS hoja, hay una columna con el valor numérico como «3000053406».

Cuando la leí con PDI con..

cell.getNumericCellValue()

Me da valor como «3.00 E+08». Esto crea gran problema en mi aplicación.

¿Cómo puedo ajustar el formato de número, mientras que la lectura de los datos en Apcahe PDI ?

Hay una manera que yo conozco es el de establecer la columna » tipo «text». Pero quiero saber si hay alguna otra forma en Apache POI lado, mientras que la lectura de los datos. O podemos darle formato utilizando java simple DecimalFormatter ?

InformationsquelleAutor Gunjan Shah | 2012-12-29

3 Comentarios

  1. 2

    Esto se presenta muy a menudo….

    Recoger uno de mis últimos respuestas a una casi idéntica pregunta

    Lo que quiero hacer es usar el DataFormatter clase. Que pase esto en un celular, y hace su mejor esfuerzo para devolver una cadena que contiene lo que Excel muestre de esa celda. Si se le pasa una cadena de células, obtendrá la cadena de nuevo. Si le pasas un numérico de la celda con el formato de las reglas que se aplican, es el formato de la serie basada en ellos y te dan la cadena de nuevo.

    Para tu caso, yo supongo que el número de células que tienen un número entero de formato regla se aplique a ellos. Si usted pide DataFormatter para dar formato a esas células, que va a dar de nuevo una cadena con el número entero cadena.

    • Gracias por la respuesta. Aquí estoy poco pero confundirse con la forma para establecer el formato en DataFormatter clase. SEGÚN mi entendimiento, que sólo quiero que los números en resule withot de punto flotante de precisión, por Lo que necesito para establecer el formato ########. Estoy en lo cierto ? ..por favor confirmar
    • Por favor puede proporcionar algún pequeño auxiliar tipo de cosa para una mejor comprensión. He probado con DataFormatter pero no puedo entender Cómo establecer el formato en el DataFormatter clase. Aquí estoy usando xls y xlsx formatos así.. se requiera el uso de HSSFDataFormatter ? y cellStyle.setDataFotmat(corto) está pidiendo a corto valor. ¿Cómo puedo recuperar a corto valor ?
    • No es necesario configurar nada – recupera las reglas de formato que se aplican en Excel en la celda, y las utiliza para dar formato al número
    • stackoverflow.com/a/12067629/1211000
    • ¿puede dar un ejemplo simple donde «se recupera el formato de las reglas que se aplican en Excel para el celular»?
    • ¡Pruébalo! O mira en la fuente a ver… Si no funciona correctamente, tendrás que hacer una nueva pregunta acerca de que

  2. 1

    Problema puede ser estrictamente relacionados con Java, no relacionados con la PDI, también.
    Desde su llamada devuelve un double,

    double val = cell.getNumericCellValue();

    Usted lo desea, puede obtener este

    DecimalFormat df = new DecimalFormat("#");
    int fractionalDigits = 2; //say 2
    df.setMaximumFractionDigits(fractionalDigits);
    double val = df.format(val);

  3. -2

    long varA = new Double(cellB1.getNumericCellValue()).longValue();
    Esto traerá el valor exacto de la variable varA.

Dejar respuesta

Please enter your comment!
Please enter your name here