【SpringMVC】上传下载
【配置准备】
项目采用的是springmvc,采用maven管理项目
①做导入导出就要引入相应的excel的jar包,在pom.xml文件中添加依赖:
org.apache.poi poi-ooxml 5.0.0
②在SpringMVC.xml文件中的配置:
前端页面导出代码
前端页面导入代码
选择上传文件
同步导出Controller层
@RestControllerpublic class UserInfoController { @Autowired private DepartInfoService departInfoService; @Autowired private UserStateService userStateService;/** * 同步导出 */ @RequestMapping("/importUserInfo") public String importUserInfo(@RequestPart("upFile") MultipartFile multipartFile) throws IOException { if (!multipartFile.getOriginalFilename().endsWith(".xlsx")) { return "非excel文件"; }// 创建一个集合存储Excel读取员工信息 List list = new ArrayList(); XSSFWorkbook workbook = new XSSFWorkbook(multipartFile.getInputStream());// 获取第一页的数据 XSSFSheet sheet = workbook.getSheetAt(0);// 获取总行数 int rowTotal = sheet.getLastRowNum();// 遍历读取每行 for (int i = 1; i < rowTotal; i++) { XSSFRow row = sheet.getRow(i); UserInfo userInfo = new UserInfo(); userInfo.setUserId(row.getCell(0).getStringCellValue()); userInfo.setUserName(row.getCell(1).getStringCellValue()); String gender = row.getCell(2).getStringCellValue(); userInfo.setGender(Integer.parseInt(gender)); userInfo.setDepartInfoName(row.getCell(3).getStringCellValue()); userInfo.setUserStateName(row.getCell(4).getStringCellValue()); //将该对象装入集合中 list.add(userInfo); } //解决部门状态的ID List departInfos = departInfoService.selDepartInfo(); List userStates = userStateService.selUserState();// 列表遍历 list.forEach(userInfo -> {// 给员工赋值对应部门的id for (DepartInfo d : departInfos) { if (userInfo.getDepartInfoName().equals(d.getDepartName())) { userInfo.setDepartId(d.getDepartId()); break; } } for (UserState u : userStates) { if (userInfo.getUserStateName().equals(u.getUserStateName())) { userInfo.setUserStateId(u.getUserStateId()); break; } } });long count = userInfoService.addUserInfoAll(list); //路径 return count+""; }
同步导出Controller层
/** * 导出员工信息 */ @RequestMapping("/exportUserInfo") public void exportUserInfo(HttpServletResponse response) throws IOException, IllegalAccessException { //查询所有的员工信息 List list = userInfoService.selUserInfoAll(); //调用Excel工具类的导出功能 new ExcelUtils().export(list, response, UserInfo.class, "员工表"); }
Service层实现
/** * 导出员工信息 * @return */ List selUserInfoAll(); /** * 批量添加 * @param list * @return */ long addUserInfoAll(List list);
serviceImpl类
@Overridepublic List selUserInfoAll() { return userInfoDao.selUserInfoAll();}@Overridepublic long addUserInfoAll(List list) { return userInfoDao.addUserInfoAll(list);}
Dao层实现
List selUserInfoAll();long addUserInfoAll(List list);
resoures中Mapper.xml文件配置
insert into userInfo(userId,userName,gender,departId,userState)values (#{u.userId},#{u.userName},#{u.gender},#{u.departId},#{u.userStateId})
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系书本网