Установка значения ячейки Excel в числовом формате с помощью POI - PullRequest
15 голосов
/ 23 января 2012

Я хочу сохранить числовые данные в листе Excel.
Числовые данные представлены типом String в моем коде Java.
Можно ли установить их как числовые, не приводя их в соответствие?

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

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

Ответы [ 4 ]

24 голосов
/ 23 января 2012

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

setCellValue

public void setCellValue(double value)

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

Параметры :

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

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

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

OR

dCell.setCellValue(123);  //Remember, the way you did was, you actually passed a string (no quotes)
8 голосов
/ 23 января 2012

Я использовал для этого большой десятичный знак,

dCell.setCellValue(new BigDecimal("112.45").doubleValue());
2 голосов
/ 23 января 2012

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

dCell.setCellValue(new Double(112.45));

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

dCell.setCellValue(112.45);
1 голос
/ 05 июня 2014

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

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

У нас есть

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

, который не удаляет предупреждение, но 1-йкод работал после преобразования в Double для всех целых чисел и значений Double в .net

...