POI导入Excel附件上传

 

-------------------------------------------前台页面---------------------------------------------------

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



<%----%> <%----%>
文件名称上传时间

 

 

 

----------------------------------------------后台---------------------------------------------------

 

--------------验证上传文件返回成功保存文件并返回filepath------------

 

@RequestMapping("import")
   @ResponseBody
   public Map imports(@RequestParam MultipartFile file,Model model, HttpSession session,String i) {
      Map resMap = new HashMap();
      VUser user=(VUser)session.getAttribute("user_session");
      resMap.put("user", user);
      model.addAttribute("message", "File '" + file.getOriginalFilename());
      System.out.println(i);
//        String bol="yes";
      String fileOriginalName = file.getOriginalFilename();
      String statusCode = "200", message = "上传成功";
      List list=new ArrayList<>();
      String type=null;
      try {
         if (!StringUtils.isEmpty(fileOriginalName)) {
//          FileUtil fileHelper = new FileUtil();
//          String decodeFileName = fileHelper.getDecodeFileName(fileOriginalName);// 文件名编码
//          String mFilePath = session.getServletContext().getRealPath("") + decodeFileName; // 取得服务器路径
//          mFilePath = mFilePath.substring(0, 2) + "\\njdtjsis" + "\\hiddenDanger\\" + decodeFileName;
//          fileHelper.createFile(mFilePath, file.getBytes());
//              FileInputStream fileIn = new FileInputStream(mFilePath);
            //----------------------------------------------------------------
            Workbook wb0=null;
            if(file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")).equals(".xlsx")){
               wb0=new XSSFWorkbook(file.getInputStream());
               type="ByteArrayInputStream";
            }else if(file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")).equals(".xls")){
               wb0=new HSSFWorkbook(file.getInputStream());
               type="FileInputStream";
            }
            Sheet sheet = wb0.getSheetAt(0);
            for(Row row:sheet){
               if(row.getCell(1)==null){
                  break;
               }
               GxSysUser gxSysUser=new GxSysUser();
               Cell cell0 = row.getCell(1);
               Cell cell3 = row.getCell(3);
               if(cell0!=null&&cell3!=null){
                  cell0.setCellType(Cell.CELL_TYPE_STRING);
                  cell3.setCellType(Cell.CELL_TYPE_STRING);
               }
               GxSysUser u=sysUserManager.findUniqueBy("userId",row.getCell(1).getStringCellValue());
               GxSysUser u1=sysUserManager.findUniqueBy("userCardId",row.getCell(3).getStringCellValue());
               if(u!=null||u1!=null){
                  gxSysUser.setUserName(row.getCell(0).getStringCellValue());
                  gxSysUser.setUserId(row.getCell(1).getStringCellValue());
                  gxSysUser.setUserSex(row.getCell(2).getStringCellValue());
                  gxSysUser.setUserCardId(row.getCell(3).getStringCellValue());
                  gxSysUser.setUserType(row.getCell(4)!=null?row.getCell(4).getStringCellValue():"");
                  if(u!=null){
                     gxSysUser.setUserId("用户名已存在");
                  }
                  if(u1!=null){
                     gxSysUser.setUserCardId("身份证已存在");
                  }
                  list.add(gxSysUser);
               }
            }
            if(list.size()==0){
               FileUtil fileHelper = new FileUtil();
               String decodeFileName = fileHelper.getDecodeFileName(fileOriginalName);// 文件名编码
               String mFilePath = session.getServletContext().getRealPath("") + decodeFileName; // 取得服务器路径
               mFilePath = mFilePath.substring(0, 2) + "\\njdtjsis" + "\\userinfo\\" + decodeFileName;
               fileHelper.createFile(mFilePath, file.getBytes());
               resMap.put("fileUrl",mFilePath);
               resMap.put("flog",false);
            }else {
               resMap.put("flog",true);
            }
            file.getInputStream().close();
         }
      } catch (Exception e) {
         statusCode = "300";
         message = "上传失败";
         resMap.put("flog",true);
//            bol="no";
         e.printStackTrace();
      }
      resMap.put("list", list);
      resMap.put("type",type);
      resMap.put("statusCode", statusCode);
      resMap.put("message", message);
      return resMap;
   }

 

--------------通过返回filepath打开Excel并解析入库------------

@RequestMapping("import-save")
public @ResponseBody
Map UserSaveImport(String fileUrl,HttpSession session,String orgId,String type) {
   Map resMap = new HashMap();
   String statusCode = "200", message = "操作成功";
   VUser gxuser = (VUser) (session.getAttribute("user_session") == null ? null
         : session.getAttribute("user_session"));

   Workbook wb0=null;
   try {
      Map parameterMap = new HashMap();
      InputStream in= new FileInputStream(fileUrl);
      if(type.equals("ByteArrayInputStream")){
         wb0=new XSSFWorkbook(in);
      }else {
         wb0=new HSSFWorkbook(in);
      }

      Sheet sheet = wb0.getSheetAt(0);
      for(Row row:sheet) {
         if(row.getCell(1)==null){
            break;
         }
         GxSysUser gxSysUser=new GxSysUser();
         gxSysUser.setRowId(null);
         gxSysUser.setUserName(row.getCell(0).getStringCellValue());
         gxSysUser.setUserShowName(row.getCell(0).getStringCellValue());
         row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);
         gxSysUser.setUserId(row.getCell(1).getStringCellValue());
         gxSysUser.setUserMobileNum(row.getCell(1).getStringCellValue());
         gxSysUser.setUserEnName("123");
         gxSysUser.setUserSex(row.getCell(2).getStringCellValue().equals("男")?"1":"0");
         gxSysUser.setUserCardId(row.getCell(3).getStringCellValue());
         gxSysUser.setUserType(row.getCell(4)!=null?row.getCell(4).getStringCellValue():"");
         gxSysUser.setCreateTime(new Timestamp(new Date().getTime()));

         GxSysUserInOrgCopy gxSysUserInOrgCopy = new GxSysUserInOrgCopy();
         gxSysUserInOrgCopy.setCreateTime(new Timestamp(new Date().getTime()));
         gxSysUserInOrgCopy.setCreateUserId(gxuser != null ? gxuser
               .getUserId() : "");
         gxSysUserInOrgCopy.setOrgId(orgId);
         gxSysUserInOrgCopy.setUserId(gxSysUser.getUserId());

         String hql = "SELECT max(t.dataOrder) FROM  GxSysUserInOrgCopy t where t.orgId=?";
         List maxNum = gxSysUserInOrgCopyManager.find(hql, orgId);
         int num = 1;
         if (maxNum.get(0)==null) {
            num=Integer.parseInt(orgDataOrderDefaultManager.findUniqueBy("orgId",orgId).getDataOrder());
         } else {
            Object obj = maxNum.get(0);
            num = !StringUtils.validateLong(obj) ? 1 : new BigDecimal(
                  obj.toString()).intValue() + 1;
         }
         gxSysUserInOrgCopy.setDataOrder(num);
         gxSysUserInOrgCopyManager.save(gxSysUserInOrgCopy);
         gxUserManager.save(gxSysUser);
      }
   } catch (Exception e) {
      statusCode = "300";
      message = "操作失败";
      e.printStackTrace();
   }
   resMap.put("statusCode", statusCode);
   resMap.put("message", message);
   resMap.put("closeCurrent", true);
   resMap.put("divid", "user-manager-user-list1");

   return resMap;

}

你可能感兴趣的:(java,POI,Excel导入,附件上传)