Apache Poi: получение двойного значения в научной записи вместо числового значения

#java #apache-poi

#java #apache-poi

Вопрос:

Мой фактический номер: «89148000001958100000» (т. е. данные столбца Excel, после получения данных через плагин apahce poi он преобразуется в 8.91480000019581 E 019.

Фрагмент кода преобразования :

импортируйте org.apache.poi.ss.usermodel.Ячейка;

двойной dd = cell.getNumericCellValue();

Как я могу получить свое фактическое число в файле Excel.

Пожалуйста, предложите…

Ответ №1:

 DataFormatter fmt = new DataFormatter();


String value= fmt.formatCellValue(cell);
  

Вы можете отобразить значение таким, какое оно есть в Excel, используя DataFormatter

Вы также можете преобразовать строку в требуемый формат, используя классы BigDecimal или BigInteger для хранения больших значений

Ответ №2:

Я получил решение для преобразования числа в научной записи в обычное число

Фрагмент кода:

  NumberFormat formatter = new DecimalFormat("#0");

 String opt = formatter.format(value);
  

Этот код выдает фактическое число.

Ответ №3:

Вы также можете использовать BigDecimal для этого. Вы также можете напрямую возвращать десятичное или строковое представление большого числа.

Допустим, ячейка содержит большое значение

 private String getStringValue(Cell cell)
    {
        if(cell.getCellType()==CellType.NUMERIC)
        {
            return new BigDecimal(String.valueOf(cell.getNumericCellValue())).toPlainString();
        }
        else if(cell.getCellType() == CellType.STRING)
        {
            return cell.getStringCellValue();
        }

        return "";
    }