Установка значения ячейки Excel в числовом формате с использованием POI

Я хочу хранить числовые данные в листе excel.
Числовые данные представлены строковым типом в моем java-коде.
Можно ли установить его как числовое без его литья?

Я пробовал следующий код, но он не был преобразован в числовой тип (я получаю предупреждение в excel, говорящее, что число хранится как текст...)

HSSFCell dCell =...
dCell.setCellType(Cell.CELL_TYPE_NUMERIC);
dCell.setCellValue("112.45")

Ответ 1

Вы должны указать значение как двойное. Как doc говорит:

setCellValue

public void setCellValue(double value)

установить числовое значение для ячейки

Параметры:

value - числовое значение для установки этой ячейки. Для формул мы установим предварительно рассчитанное значение, для численных значений мы установим его значение. Для других типов мы изменим ячейку на числовую ячейку и установим ее значение.

Итак, это должно быть

dCell.setCellValue(new Double("123"));

ИЛИ

dCell.setCellValue(123);  //Remember, the way you did was, you actually passed a string (no quotes)

Ответ 2

Я использовал для этого Big Decimal,

dCell.setCellValue(new BigDecimal("112.45").doubleValue());

Ответ 3

Попробуйте использовать классы-оболочки:

dCell.setCellValue(new Double(112.45));

BTW, он будет работать, если вы просто укажете значение вместо двойных котов следующим образом:

dCell.setCellValue(112.45);

Ответ 4

Старый, но все же Это поможет кому-то из .NET, которые используют NPOI

dCell.setCellValue(Convert.ToDouble(112.45));

Имеем

cell.SetCellType(NPOI.SS.UserModel.CellType.NUMERIC); 

который не удаляет предупреждение, но первый код работал после преобразования в Double for All integers и Double values ​​в .net