博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解析excel数据并做检验及保存到数据库
阅读量:5881 次
发布时间:2019-06-19

本文共 7496 字,大约阅读时间需要 24 分钟。

此例为初次参与企业项目做的,代码粗糙勿见怪:

/**     * 从EXCEL导入核心企业信息到数据库     * @param file     * @return     * @throws Exception     */    @RequestMapping(value = "importWhitelistExcel")    public ModelAndView readExcel(            @RequestParam(value="excel",required=false) MultipartFile file            ) {        ModelAndView mv = this.getModelAndView();        PageData pd = this.getPageData();                Whitelist whiteList = new Whitelist();        if(!Jurisdiction.buttonJurisdiction(menuUrl, "add")){return null;}        if (null != file && !file.isEmpty()) {            String filePath = PathUtil.getClasspath() + Const.FILE_PATH_FILE;                    //文件上传路径            String dateStr = DateUtils.getSdfTimes();            String fileName = "Whitelist_"+Jurisdiction.getUsername()+"_"+dateStr;                        fileName =  FileUpload.fileUp(file, filePath, fileName);                              //执行上传                        //执行读EXCEL操作,读出的数据导入List 2:从第3行开始;1:从第B列开始;0:第0个sheet            String errmsg=null;            //Matcher matcher = null;            List
readList=new ArrayList
(); List
errorList=new ArrayList
(); try{ List
excelPdList = (List)ObjectExcelRead.readExcel(filePath, fileName, 2, 1, 0, "#.####"); /*数据库写入操作======================================*/ /* * 白名单信息必输字段: * 核心企业名称,项目公司名称 * (为非必输) * 校验: */ for(PageData ca:excelPdList){ // 忽略序号 PageData readPd = new PageData(); PageData tipPd = new PageData(); String coreManuName = StringUtils.trimToEmpty(ca.getString("var1")); //核心企业名称 String companyName = StringUtils.trimToEmpty(ca.getString("var2")); //项目公司名称 String coreManuId = null; //int index = excelPdList.indexOf(ca); // 数据校验开始 if(StringUtils.isEmpty(coreManuName)) { tipPd.put("coreManuName", coreManuName); tipPd.put("companyName", companyName); if(StringUtils.isEmpty(companyName)){ // tipPd.put("tip", "核心企业名称和项目公司名称不能为空"); continue; }else{ tipPd.put("tip", "核心企业名称不能为空"); } errorList.add(tipPd);// errmsg="核心企业名称不能为空";// break; }else if(StringUtils.isEmpty(companyName)) { tipPd.put("coreManuName", coreManuName); tipPd.put("companyName", companyName); tipPd.put("tip", "项目公司名称不能为空"); errorList.add(tipPd);// errmsg="核心企业["+coreManuName+"]项目公司名称不能为空";// break; }// CoreCompany c = coreCompanyService.findByCompanyName(coreManuName);// System.out.println(coreManuName);// System.out.println(c); if(!StringUtils.isEmpty(coreManuName)){ CoreCompany coreManu = coreCompanyService.findByCompanyName(coreManuName); if(coreManu == null) { tipPd.put("coreManuName", coreManuName); tipPd.put("companyName", companyName); tipPd.put("tip", "系统找不到核心企业名称,核心企业名称错误"); errorList.add(tipPd); }else { coreManuId = coreManu.getId(); whiteList = whitelistService.findByWhitelistName(coreManuId, companyName); if(whiteList != null) {//判断导入表中是否存在相同数据 tipPd.put("coreManuName", coreManuName); tipPd.put("companyName", companyName); tipPd.put("tip", "此记录已录入系统"); errorList.add(tipPd);// errmsg = "核心企业["+coreManuName+"]和项目公司["+companyName+"在系统中已存在,请在导入表删除后重新导入";// break; } } } readPd.put("coreManuId", coreManuId); //核心企业编号 readPd.put("companyName", companyName); //项目公司名称 readPd.put("status", "EBST0101"); readPd.put("createUser", Jurisdiction.getUsername()); readPd.put("createTime", DateUtils.getTime()); readPd.put("lasUpdUser", Jurisdiction.getUsername()); readPd.put("lasUpdTime", DateUtils.getTime()); readPd.put("Id", this.get32UUID()); //ID if(!readList.isEmpty()) { for(PageData read : readList) { if(read.containsValue(companyName) && read.containsValue(coreManuId)){ //判断导入表中是否有相同项目公司 tipPd.put("coreManuName", coreManuName); tipPd.put("companyName", companyName); tipPd.put("tip", "此记录在导入表中重复"); errorList.add(tipPd);// errmsg = "导入表里核心企业["+coreManuName+"]和项目公司["+companyName+"]在表中重复,请修改后导入";// break; } } } readList.add(readPd); } }catch(Exception ex){ logger.error("处理Excel文件出错", ex); errmsg="处理Excel文件出错,"+ex.getMessage(); } if(errmsg==null && readList.size()==0){ errmsg="未检测到符合条件的数据"; } if(errmsg!=null || errorList.size()>0){ if(errmsg==null){ errmsg="数据导入失败,请核对以下数据"; } mv.addObject("errmsg", errmsg); mv.addObject("tipList", errorList); mv.setViewName("business/whitelist/whitelist_upload"); return mv; } // if(errmsg!=null){// mv.addObject("errmsg", errmsg);// mv.setViewName("business/whitelist/whitelist_upload");// return mv;// } //批量保存到数据库 try { whitelistService.saveAll(readList); } catch (Exception e) {// e.printStackTrace(); logger.error(e.toString()); errmsg = "系统异常,保存数据失败"; mv.addObject("errmsg", errmsg); mv.setViewName("business/whitelist/whitelist_upload"); return mv; } } mv.addObject("msg","success"); mv.setViewName("save_result"); return mv; }

转载地址:http://auvix.baihongyu.com/

你可能感兴趣的文章
linux运维实战练习-2015年8月30日课程作业
查看>>
导入excel
查看>>
《跟老男孩学Linux运维之shell编程实战》-第二章 shell变量的核心基础
查看>>
puppet客户端认证
查看>>
我的友情链接
查看>>
Lombardi WebAPI 详解
查看>>
NET 2.0 - WinForm Control - DataGridView 编程36计(一)
查看>>
从语言层次的角度看为什么要精通C语言
查看>>
oracle登陆受限问题
查看>>
docker集群(一)--简单应用portainer
查看>>
linux线程锁使用实例
查看>>
HTML第一讲
查看>>
kafka入门
查看>>
Redis 占用Windows系统盘空间23G
查看>>
linux 内存分配
查看>>
续费Enom域名的三种办法
查看>>
backtop返回页面顶部jquery代码
查看>>
洛谷 1273 有线电视网
查看>>
maven笔记(4)
查看>>
Jquery常用方法合集,超实用
查看>>