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;  
        } 

  • 相关阅读:
    The network connection was lost 文件下载错误提示
    ThinkPHP第一课 环境搭建
    Docs-.NET-C#-指南-语言参考-关键字-值类型:内置数值转换
    Docs-.NET-C#-指南-语言参考-关键字-值类型-:浮点数值类型
    Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:整型数值类型
    Docs-.NET-C#-指南-语言参考-关键字-内置类型-值类型:值类型的功能
    Docs-.NET-C#-指南-语言参考-关键字:C# 关键字
    Docs-.NET-C#-指南-语言参考-预处理器指令:#pragma checksum(C# 参考)
    Docs-.NET-C#-指南-语言参考-预处理器指令:#pragma warning(C# 参考)
    Docs-.NET-C#-指南-语言参考-预处理器指令:#pragma(C# 参考)
  • 原文地址:https://www.cnblogs.com/renpei/p/7693330.html
Copyright © 2011-2022 走看看