JAVA使用POI3.5读取EXCEL[多单元格数据类型处理,支持公式]

本文以2003XLS读取方式代码块举例,可以解决单元格CELL数据类型及公式问题。
全过程比较繁琐恕不例举。

//获取公式运行结果处理cell值[以XLS举例]
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.CellValue;
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
CellValue cellValue = evaluator.evaluate(cell);
//cellValue只会是Boolean;Numeric;String;Error四种
switch (cellValue.getCellTypeEnum()) {
    case BOOLEAN: //布尔
        Boolean boolean = cellValue.getBooleanValue();
        break;
    case NUMERIC: //数字或日期
        if (HSSFDateUtil.isCellDateFormatted(cell)) { //日期[从cell获取]
            Date date = cell.getDateCellValue();
        } else {  //数字
            Double double = cellValue.getNumberValue();
        }
        break;
    case STRING:
        String string = cellValue.getStringValue();
        break;
    case FORMULA:
    case _NONE:
    case BLANK:
    case ERROR:
    default:
        //空值
        break;
}

参考资料:http://poi.apache.org/components/spreadsheet/eval.html

转载请贴地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值