我的程序在循环读取单元格值的时候,用的是String value=cell.getStringCellValue(),而且excel文件中的值也是String类型的。可是运行时抛出了异常。
java.lang.NumberFormatException: You cannot get a string value from a numeric cell
org.apache.poi.hssf.usermodel.HSSFCell.getStringCellValue(HSSFCell.java:775)
snt.ssi.web.utils.HandlerExcel.revolveDatas(HandlerExcel.java:69)
snt.ssi.web.utils.HandlerExcel.handler(HandlerExcel.java:45)
snt.ssi.web.action.rules.DataClearAction.doJob(DataClearAction.java:35)
snt.ssi.web.action.BaseAction.execute(BaseAction.java:46)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
大家帮忙解决一下!

解决方案 »

  1.   

    excel单元格设置成数字格式了。你可以改一下excel或改一下程序都行。
      

  2.   

    在你的程序中读取Excel数据的时候先判断一下你要读取的单元格是什么类型,然后再做相应的读取操作,最后再转换成你所需要的格式.
      

  3.   


    public static Object getCellValue(HSSFCell cell) {
    if (cell == null)
    return null;
    switch (cell.getCellType()) {
    case HSSFCell.CELL_TYPE_STRING:// 获取字符串类型
    return cell.getRichStringCellValue();
    case HSSFCell.CELL_TYPE_BOOLEAN:// 获取布尔类型
    return cell.getBooleanCellValue();
    case HSSFCell.CELL_TYPE_NUMERIC:// 获取数字类型
    return (HSSFDateUtil.isCellDateFormatted(cell) == true) ? cell
    .getDateCellValue() : cell.getNumericCellValue();
    case HSSFCell.CELL_TYPE_FORMULA: // 获取公式
    return cell.getCellFormula();
    default:
    return "";
    }
    }
      

  4.   

    就是这个问题,肯定是你导入的excel那个列是其他格式的,修改成字符串格式就哦了