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

时间:2012-01-23 06:28:49

标签: java excel apache-poi

我想在Excel工作表中存储数字数据 数字数据在我的java代码中由String类型表示 是否可以将其设置为数字而不进行投射?

我已经尝试了以下代码,但它没有转换为数字类型(我在excel中收到一条警告,说该号码存储为文本...)

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

4 个答案:

答案 0 :(得分:24)

您必须将值提供为double。正如the doc says

  

<强> setCellValue

     

public void setCellValue(double value)

     

设置单元格的数值

     

参数

     

value - 设置此单元格的数值。对于公式,我们将设置   预先计算的值,对于数值,我们将设定其值。对于其他类型   我们将单元格更改为数字单元格并设置其值。

所以,它应该是

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

OR

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

答案 1 :(得分:8)

我使用了Big Decimal,

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

答案 2 :(得分:2)

尝试使用包装类:

dCell.setCellValue(new Double(112.45));
顺便说一句,如果您只是给出值而不是双骰子,它将起作用,如下所示:

dCell.setCellValue(112.45);

答案 3 :(得分:1)

旧的但是它仍然可以帮助.NET中的一个人使用NPOI

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

我们有

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

没有删除警告,但第一个代码在.net

中转换为Double for All整数和Double值后确实有效