Установка значения ячейки 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