我想在Excel工作表中存储数字数据 数字数据在我的java代码中由String类型表示 是否可以将其设置为数字而不进行投射?
我已经尝试了以下代码,但它没有转换为数字类型(我在excel中收到一条警告,说该号码存储为文本...)
HSSFCell dCell =...
dCell.setCellType(Cell.CELL_TYPE_NUMERIC);
dCell.setCellValue("112.45")
答案 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值后确实有效