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 "";
        }
  • 相关阅读:
    Response.Redirect引起的性能问题分析
    Html5中 视频 音频标签 进度条问题
    GIS 地理坐标分类
    函数指针理解最透彻的文章
    python安装第三方包之后无法导入相应模块(一个容易忽略的bug)
    git使用入门
    OpenSSL中HMAC,MD5以及对称加密算法的应用
    OpenSSL库中加密组件使用的相关链接
    Ubuntu 12.04LTS下配置OpenSSL和gmp环境
    编程写作注意事项!
  • 原文地址:https://www.cnblogs.com/stono/p/6713158.html
Copyright © 2011-2022 走看看