poi 处理excel 小数问题 整数不保留小数位 整数多.0


读取的单元格为 hssfCell ,传入下面我提供的方法处理
默认poi返回的为DOUBLE,所有先转为Long判断下,再进行返回;
  private  String getValue(Cell hssfCell) {

        if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {

            // 返回布尔类型的值

            return String.valueOf(hssfCell.getBooleanCellValue());

        } else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {

            // 返回数值类型的值

            Object inputValue = null;// 单元格值

            Long longVal = Math.round(hssfCell.getNumericCellValue());

            Double doubleVal = hssfCell.getNumericCellValue();

            if(Double.parseDouble(longVal + ".0") == doubleVal){   //判断是否含有小数位.0

                inputValue = longVal;

            }

            else{

                inputValue = doubleVal;

            }

            DecimalFormat df = new DecimalFormat("#.####");    //格式化为四位小数,按自己需求选择;

            return String.valueOf(df.format(inputValue));      //返回String类型

        } else {

            // 返回字符串类型的值

            return String.valueOf(hssfCell.getStringCellValue());

        }

    }

  

你可能感兴趣的:(Excel)