一、遇到的问题:
今天使用poi操作excel时,发现1会变成1.0,有的小数会变成1.100000001;下面介绍一下解决方法。
二、poi获取序号方法存在的问题:
1.call.tostring:
整数序号通过call.tostring会自动加.0;如1会变1.0
String cellValueNum = sheet1.getRow(i).getCell(0).toString(); //num.tostring->1转1.0
带小数点的序号通过call.tostring获取的值正常;1.1还是1.1; 2.1.1还是2.1.1
所以call.tostring整数会改变。
2.如果先将cell.setCellType(CellType.STRING);后获取cell.getStringCellValue(); 此时,整数正常,但是1.1会变成1.1000001
三、解决方案:
既然方法1tostring可以处理整数,处理不了带.的;方法2能处理整数,处理不了带.的,那么我们可通过判断序号是否带.,选择不同的处理方案;
大致代码如下:
//不是日期格式,[转换为字符串输出]
String cellstr = cell.toString();
cell.setCellType(CellType.STRING);
cellValue = cell.getStringCellValue();
if(cellValue.indexOf(".") > -1) {
cellValue = cellstr;
}