日期:2014-05-20  浏览次数:20786 次

Java处理Excel的问题
我的程序在循环读取单元格值的时候,用的是
Java code
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)


大家帮忙解决一下!

------解决方案--------------------
Java code

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 "";
        }
    }