使用POI以数字格式设置Excel单元格值

我想在Excel表格中存储数字数据。
数字数据在我的java代码中由stringtypes表示。
有没有可能将其设置为数字,而不是铸造它?

我试过下面的代码,但它没有转换为数字types(我在Excel中得到一个警告,说这个数字被存储为文本…)

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

您必须提供双倍的价值。 正如文件所说 :

setCellValue

public void setCellValue(double value)

为单元格设置一个数值

参数

– 将此单元格设置为的数值。 对于公式,我们将设置预先计算的值,对于数字我们将设置它的值。 对于其他types,我们将把单元格更改为数字单元格并设置其值。

所以,应该是

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

要么

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

我用这个大十进制,

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

尝试使用包装类:

 dCell.setCellValue(new Double(112.45)); 

顺便说一句,它会工作,如果你只是给的价值,而不是双cotes如下:

 dCell.setCellValue(112.45); 

老一个,但仍然这将有助于从.NET的一些谁使用NPOI

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

我们确实有

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

它不会删除警告,但第一个代码在.net中转换为Double for All整数和Double值后工作