zoukankan      html  css  js  c++  java
  • POI对Excel自定义日期格式的读取

    POI对Excel自定义日期格式的读取

    学习了:http://yl-fighting.iteye.com/blog/1726285

    cell.getCellStyle().getDataFormat();根据这个值进行时间、日期格式的判断;

    POI读取出来的结果也是有些变化的;需要在实际项目中进行确认;

    日期格式的遍历:Excel2007和Excel2003都是这样的结果;

    时间格式的遍历:

     增加了其它日期格式的处理:
        // 读取cell单元格的值,如果为日期格式,进行转换
        @SuppressWarnings("deprecation")
        public String getCellValue(Cell cell) {
            if (cell == null)
                return "";
            if (cell.getCellType() == Cell.CELL_TYPE_STRING) {
                return cell.getStringCellValue();
            } else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN) {
                return String.valueOf(cell.getBooleanCellValue());
            } else if (cell.getCellType() == Cell.CELL_TYPE_FORMULA) {
                return cell.getCellFormula();
            } else if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
                short format = cell.getCellStyle().getDataFormat();
                System.out.println("format:"+format+";;;;;value:"+cell.getNumericCellValue());
                SimpleDateFormat sdf = null;
                if (format == 14 || format == 31 || format == 57 || format == 58  
                        || (176<=format && format<=178) || (182<=format && format<=196) 
                        || (210<=format && format<=213) || (208==format ) ) { // 日期
                    sdf = new SimpleDateFormat("yyyy-MM-dd");
                } else if (format == 20 || format == 32 || format==183 || (200<=format && format<=209) ) { // 时间
                    sdf = new SimpleDateFormat("HH:mm");
                } else { // 不是日期格式
                    return String.valueOf(cell.getNumericCellValue());
                }
                double value = cell.getNumericCellValue();
                Date date = org.apache.poi.ss.usermodel.DateUtil.getJavaDate(value);
                if(date==null || "".equals(date)){
                    return "";
                }
                String result="";
                try {
                    result = sdf.format(date);
                } catch (Exception e) {
                    e.printStackTrace();
                    return "";
                }
                return result;
            }
            return "";
        }
  • 相关阅读:
    LinkList
    hadoop记录篇3-namenode水平拓展Federation+viewfs
    hadoop记录篇2-namenode高可用(HA)之QJM+NFS
    hadoop记录篇1-hdfs集群安装
    springcloud记录篇5-zuul路由
    springcloud记录篇4-断路器Circuit Breaker
    springcloud记录篇3-springcloud客户端ribbon和feign
    springboot心得笔记-常用配置
    springboot心得笔记-入门
    springcloud记录篇2-服务注册和发现
  • 原文地址:https://www.cnblogs.com/stono/p/6713158.html
Copyright © 2011-2022 走看看