XSSFCell.CELL_TYPE_NUMERIC将值0更改为25

时间:2016-12-09 17:01:27

标签: java apache-poi xssf

integrityrecords.get(i).get(2)="0";
fieldsheet.getRow(1).getCell(3)
                    .setCellValue(integrityrecords.get(i).get(2));
System.out.println("coulmn 1  :" + integrityrecords.get(i).get(2));

我正在尝试从数据库中获取数据作为字符串的ArrayList,然后使用poi-3.14 XSSF将其写入excel。 当我这样做时,我在excel单元格中收到警告,我在单元格中输入一个数字值"转换为数字"。为了解决这个问题,我使用了setCellType()的附加代码。

fieldsheet.getRow(integrityStartRow).getCell(3).setCellType(XSSFCell.CELL_TYPE_NUMERIC);

当我这样做时,单元格值将更改为25.这将发生在我输入单元格的其他十进制值。

如何克服这种变化?

1 个答案:

答案 0 :(得分:2)

应使用预期的数据类型调用

setCellValue()。看起来你用字符串类型调用它,如果在传入字符串之前将字符串转换为数字应该会更好,那么setCellType()也不再需要了。

另见http://poi.apache.org/spreadsheet/quick-guide.html#CellTypes