现在的位置: 首页 > 综合 > 正文

excel 导入 完整例子

2014年06月08日 ⁄ 综合 ⁄ 共 3380字 ⁄ 字号 评论关闭

导入excel
eg

    创建url 创建工单薄 创建工单页 定义行数 定义单元格 输出流 获取单元格的值

    /** 工单导入* */
 public String importExcelData() throws Exception {
  try {
   // 创建工单薄
   Workbook book = Workbook.getWorkbook(myFile);
   // 创建一个工单页
   Sheet sheet = book.getSheet(0);
   // 行数
   int rows = sheet.getRows();
   Map<String, List<ComplaintsListVo>> map = complaintsmanager
     .importMemberExcel(sheet, rows);
   boolean b = true;
   // 判断导入的错误数据
   List<ComplaintsListVo> falseQmv = map.get("false");
   if (falseQmv != null && falseQmv.size() > 0) {
    b = false;
   }
   // json数组
   JSONArray jsonObject = null;
   // json配置
   JsonConfig jc = new JsonConfig();
   // 导入的数据无误
   if (b) {
    setListmember(map.get("all"));
    setFalsemember(map.get("false"));
    setSuccessmember(map.get("success"));
// 数据入库
    complaintsmanager.saveImportMember((List<ComplaintsListVo>) map
      .get("all"));
    jsonObject = JSONArray.fromObject(listmember, jc);
    setJsondata("{success:true,data:" + jsonObject.toString() + "}");
    Struts2Utils.getSession().setAttribute("excellist", listmember);
   } else {
    setListmember(map.get("all"));
    setSuccessmember(map.get("success"));
    setFalsemember(map.get("false"));
    jsonObject = JSONArray.fromObject(falsemember, jc);
    setJsondata("{success:false,data:" + jsonObject.toString()
      + "}");
    Struts2Utils.getSession().setAttribute("excellist", listmember);
   }

  } catch (Exception e) {
   logger.error("", e);
   setReturnmessage("[ 读取文件失败,请使用标准模板导入文件! ]");
  }
  return "json";
 }

 public Map<String, List<ComplaintsListVo>> importMemberExcel(Sheet sheet,
   int rows) {
  Map<String, List<ComplaintsListVo>> map = new HashMap<String, List<ComplaintsListVo>>();
  List<ComplaintsListVo> success = new ArrayList<ComplaintsListVo>();
  List<ComplaintsListVo> failed = new ArrayList<ComplaintsListVo>();
  List<ComplaintsListVo> listqmv = new ArrayList<ComplaintsListVo>();
  try{
   for(int i=1;i<rows;i++){
    Cell[] cell = sheet.getRow(i);
    ComplaintsListVo  clv = new ComplaintsListVo();
    StringBuilder sb = new StringBuilder();//输出流
    //判断所在的行是否有数据
    if(cell.length==0){
     System.out.println(i);
     sb.append("所在行数据为空,格式错误!");
    
    }
    if(cell.length>52){
     sb.append("你所在的行数据超过52列,系统无法处理");
    }else{
     //对每一行的数据进行循环处理
    
     for(int j=0;j<cell.length;j++){
      
      switch (j) {
      /**投诉类型处理**/
      case 0:
       String gdtype = cell[0].getContents();//得到列的工单类型
      
       if(null==gdtype||"".equals(gdtype)){
        clv.setGdType("工单类型不能为空");
        sb.append("|");
       }else{
        if("投诉".equals(gdtype)||"差错".equals(gdtype)||"建议".equals(gdtype)||"表扬".equals

(gdtype)){
         clv.setGdType(gdtype);
        }else{
         sb.append("工单类型错误");
         sb.append("|");
        }
       }
       break;
      /**投诉来源管理**/
      case 1:
       String tsfrom= cell[1].getContents();
       if(null==tsfrom||"".equals(tsfrom)){
        sb.append("投诉来源不能为空");
       }else{
         clv.setTsFrom(tsfrom);
       }
       clv.setTsFrom(tsfrom.trim());
       break;
      /**产品类型管理**/

               //还有相应的字段
      
      }
     }
    }
    if (!"".equals(sb.toString().trim())) {
     failed.add(clv);
     listqmv.add(clv);

    } else {
     sb.append("符合规则");
     success.add(clv);
     listqmv.add(clv);
    }
   }
   
   map.put("success", success);
   map.put("false", failed);
   map.put("all", listqmv);
   return map;
   
  }catch (Exception e) {
   e.printStackTrace();
   ComplaintsListVo qmv = new ComplaintsListVo();
   listqmv.add(qmv);
   map.put("sucess", success);
   map.put("false", failed);
   map.put("all", listqmv);
   return map;
  }
 }

 

抱歉!评论已关闭.