zoukankan      html  css  js  c++  java
  • POI Excel 单元格内容类型判断并取值

    个人用到的

               String birthdayVal = null;
                                    
                                            switch (cell_2.getCellTypeEnum()) {
                                                case STRING:  
                                                    birthdayVal = cell_2.getRichStringCellValue().getString();  
                                                    break;  
                                                case NUMERIC:  
                                                    if("General".equals(cell_2.getCellStyle().getDataFormatString())){  
                                                        birthdayVal =DateToStr(HSSFDateUtil.getJavaDate(cell_2.getNumericCellValue()));  
                                                    }else if("m/d/yy".equals(cell_2.getCellStyle().getDataFormatString())){  
                                                        birthdayVal = DateToStr(cell_2.getDateCellValue());  
                                                    }else{  
                                                        birthdayVal = DateToStr(HSSFDateUtil.getJavaDate(cell_2.getNumericCellValue()));  
                                                    }  
                                                    break;  
                                                default:  
                                                    x = i+1;
                                                    throw new AWSForbiddenException("导入文件的第["+x+"]行的[出生年月]的格式有问题,请检查!",null);
                                               } 

     

        /**
        * 日期转换成字符串
        */
        public static String DateToStr(Date date) {
           java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");
           String str = format.format(date);
           return str;
        }

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    poi3.5之前的版本

    switch (cell.getCellType()) {
        case HSSFCell.CELL_TYPE_NUMERIC: // 数字
            //如果为时间格式的内容
            if (HSSFDateUtil.isCellDateFormatted(cell)) {      
               //注:format格式 yyyy-MM-dd hh:mm:ss 中小时为12小时制,若要24小时制,则把小h变为H即可,yyyy-MM-dd HH:mm:ss
               SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  
               value=sdf.format(HSSFDateUtil.getJavaDate(cell.
               getNumericCellValue())).toString();                                 
                 break;
             } else {
                 value = new DecimalFormat("0").format(cell.getNumericCellValue());
             }
            break;
        case HSSFCell.CELL_TYPE_STRING: // 字符串
            value = cell.getStringCellValue();
            break;
        case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
            value = cell.getBooleanCellValue() + "";
            break;
        case HSSFCell.CELL_TYPE_FORMULA: // 公式
            value = cell.getCellFormula() + "";
            break;
        case HSSFCell.CELL_TYPE_BLANK: // 空值
            value = "";
            break;
        case HSSFCell.CELL_TYPE_ERROR: // 故障
            value = "非法字符";
            break;
        default:
            value = "未知类型";
            break;
    }

    poi3.5以后版本

        switch (cell.getCellTypeEnum()) {  
        case STRING:  
            value = cell.getRichStringCellValue().getString();  
            break;  
        case NUMERIC:  
            if("General".equals(cell.getCellStyle().getDataFormatString())){  
                value = df.format(cell.getNumericCellValue());  
            }else if("m/d/yy".equals(cell.getCellStyle().getDataFormatString())){  
                value = sdf.format(cell.getDateCellValue());  
            }else{  
                value = df2.format(cell.getNumericCellValue());  
            }  
            break;  
        case BOOLEAN:  
            value = cell.getBooleanCellValue();  
            break;  
        case BLANK:  
            value = "";  
            break;  
        default:  
            value = cell.toString();  
            break;  
        } 

  • 相关阅读:
    Solidworks如何设置零件材料,如何评估零件质量
    Office 如何双面打印Word文档
    Discuz常见小问题2-如何在新建的页面上只显示一部分板块
    Discuz常见小问题2-如何在数据库搜索指定关键字
    Discuz常见小问题2-如何修改整个网站的默认字体为微软雅黑
    Discuz常见小问题2-如何修改管理员密码,修改admin账户密码
    php使用include报错require_once(../include.php): failed to open stream: No such file or directo
    PHP中的__get()和__set()方法获取设置私有属性
    php->是什么意思
    PHP中require(),include(),require_once()和include_once()有什么区别
  • 原文地址:https://www.cnblogs.com/renpei/p/7693330.html
Copyright © 2011-2022 走看看