若依框架导入导出(Excel) |
您所在的位置:网站首页 › 文件名怎么导入到excel里面 › 若依框架导入导出(Excel) |
导出 html页面定义的按钮 导出映射的路径 exportUrl: prefix + "/export",实体类 加入注解,导出谁就在谁上面加入注解----@Excel 导入 没有模板就不知道要导入什么,所以需要先有一个模板 导入的时候,因必要条件还要确定是否重复,出现两个一摸一样的就没有必要了吧,我这是学生表,所以还需要对其通过名字进行查询 HTML页面 导入映射 importUrl: prefix + "/importStudent",//导入 importTemplateUrl: prefix + "/importTemplate",//导出模板导入的前端页面 是否更新已经存在的用户数据 ; 下载模板 提示:仅允许导入“xls”或“xlsx”格式文件! Controller层 /** * 下载模板 */ @RequiresPermissions("system:student:view") @GetMapping("/importTemplate") @ResponseBody public AjaxResult importTemplate() { ExcelUtil util = new ExcelUtil(SysStudent.class); return util.importTemplateExcel("学生数据"); } /** * 导入 */ @RequiresPermissions("system:student:import") @PostMapping("/importStudent") @ResponseBody public AjaxResult importStudent(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil util = new ExcelUtil(SysStudent.class); List studentList = util.importExcel(file.getInputStream()); String operName = ShiroUtils.getSysUser().getLoginName(); String message = studentService.importStudent(studentList, updateSupport, operName); return AjaxResult.success(message); } service层 /** * 导入学生数据 * * @param studentList 学生数据列表 * @param updateSupport 是否更新支持,如果已存在,则进行更新数据 * @param operName 是否更新支持,如果已存在,则进行更新数据 * @return 结果 */ public String importStudent(List studentList, Boolean updateSupport, String operName) ; serviceImpl层 /** * 导入用户数据 * * @param studentList 用户数据列表 * @param updateSupport 是否更新支持,如果已存在,则进行更新数据 * @param operName 操作用户 * @return 结果 */ private static final Logger log = LoggerFactory.getLogger(SysStudentServiceImpl.class); @Override public String importStudent(List studentList, Boolean updateSupport, String operName) { if (StringUtils.isNull(studentList) || studentList.size() == 0) { throw new BusinessException("导入用户数据不能为空!"); } int successNum = 0; int failureNum = 0; StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); for (SysStudent student : studentList) { try { // 验证是否存在这个用户 SysStudent u = studentMapper.selectStudentByName(student.getStudentName() ); System.out.print(student.getStudentSex()+""); if (StringUtils.isNull(u)) { student.setStudentName(student.getStudentName()); this.insertStudent(student); successNum++; successMsg.append("" + successNum + "学校信息" + student.getStudentName() + " 导入成功"); } else if (updateSupport) { student.setUpdateBy(operName); this.updateStudent(student); successNum++; successMsg.append("" + successNum + "学校信息 " + student.getStudentName() + " 更新成功"); } else { failureNum++; failureMsg.append("" + failureNum + "学校信息" + student.getStudentName() + " 已存在"); } } catch (Exception e) { failureNum++; String msg = "" + failureNum + "学校信息" + student.getStudentName() + " 导入失败:"; failureMsg.append(msg + e.getMessage()); log.error(msg, e); } } if (failureNum > 0) { failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); throw new BusinessException(failureMsg.toString()); } else { successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); } return successMsg.toString(); } mapper层mapper.xml 写一个根据姓名查询的方法,避免重复的 where student_name = #{studentName}
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |