java读取Excel文件内容公式的处理

本文详细介绍了使用Apache POI库解决Java读取Excel文件中大量公式计算结果的问题,包括处理不同类型的单元格公式,如日期转换、数值获取和字符串获取,并提供了日期转换的自定义函数,以及对于POI无法处理的特殊函数的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 这几天做了个比较复杂的用java读取Excel文件内容,里面充斥的大量的公式计算,如何读取出其计算结果成了大问题,碰到问题怎么办,两个字"解决",闲话不叙说说解决办法吧。
采用的工具是apache的POI
具体解决办法如下:
一、如果单元格类型是:HSSFCell.CELL_TYPE_FORMULA,即表示表明该单元格式公式类型
二、在该类型处理的地方加入
    HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(workbook);
    cell.setCellFormula(cell.getCellFormula());
    evaluator.evaluateFormulaCell(cell);
三、对于用计算公式计算的不同数据需要进行不同的处理:
    如果是日期需要进行转换处理[因为获取的值为数字],具体如下:
    获取cell.getDateCellValue().toString(),然后进行转换,具体函数
    
     private static DateFormat emdhmsyDateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
     /**
      * 根据一定格式转换字符串的日期格式
      *
      * @return 日期字符串
     */
     public static String getEmdhmsyDate(String dateStr) {
     String newDate="";
     try{
     Date d = emdhmsyDateFormat.parse(dateStr);
     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
     newDate=formatter.format(d);
     }
     catch(Exception e){
         System.out.println("转换错误=="+e.toString());
     }
        return newDate;
    }
    如果是数字的用cell.getNumericCellValue()获取
    如果是字符串用cell.getStringCellValue()获取
 四、如果POI不能处理那就只能写JAVA程序处理了,例如:PPMT、LPMT等,原因是POI现在并不支持该函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值