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

来源:互联网 发布:管理系统软件的软件 编辑:程序博客网 时间:2024/04/28 14:59
 这几天做了个比较复杂的用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现在并不支持该函数
原创粉丝点击