java poi 中  cell类型怎么转换为整形进行计算例如:部分代码:for(int m=0;m<i;m++){
  cell=sheet.getRow(m).getCell(3);
  cell2=sheet.getRow(m).getCell(4);
  cell3=sheet.getRow(m).getCell(5);
  cell4=sheet.getRow(m).getCell(6);
  int a=(int) cell.getNumericCellValue();
  int b=(int) cell2.getNumericCellValue();
  int c=(int) cell3.getNumericCellValue();
  int d=(int) cell4.getNumericCellValue();
  double s=a/(b-c-d);
  sheet.getRow(m).createCell(7).setCellValue(s);
}
运行时报错了  cell怎么转换为整数进行计算,我试过valueof 也不行 JavaPOI

解决方案 »

  1.   

    给你一个我以前写的方法,你参考下!
    private String getXSSFCellValue(XSSFCell cell) {
    String value = "";
    switch (cell.getCellType()) {
    case XSSFCell.CELL_TYPE_NUMERIC: // 数值型
    if (HSSFDateUtil.isCellDateFormatted(cell)) {
    // 如果是date类型则 ,获取该cell的date值
    value = PublicFunction.getDateFormat(HSSFDateUtil.getJavaDate(cell.getNumericCellValue()));
    } else {// 纯数字
    value = new DecimalFormat("0").format(cell.getNumericCellValue());
    }
    break; /* 此行表示单元格的内容为string类型 */
    case XSSFCell.CELL_TYPE_STRING: // 字符串型
    value = cell.getRichStringCellValue().toString();
    break; case XSSFCell.CELL_TYPE_FORMULA:// 公式型
    // 读公式计算值
    value = String.valueOf(cell.getNumericCellValue());
    if (value.equals("NaN")) {// 如果获取的数据值为非法值,则转换为获取字符串
    value = cell.getRichStringCellValue().toString();
    }
    // cell.getCellFormula();读公式
    break; case XSSFCell.CELL_TYPE_BOOLEAN:// 布尔
    value = ""+ cell.getBooleanCellValue();
    break; /* 此行表示该单元格值为空 */
    case XSSFCell.CELL_TYPE_BLANK: // 空值
    value = "";
    break; case XSSFCell.CELL_TYPE_ERROR: // 故障
    value = "";
    break; default:
    value = cell.getRichStringCellValue().toString();
                break;
    } return value; }
      

  2.   

    把cell转成string 再把string转成int