pom依赖:
基于springboot
1. <dependency> 2. <groupId>cn.hutool</groupId> 3. <artifactId>hutool-all</artifactId> 4. <version>5.7.20</version> 5. </dependency> 6. <dependency> 7. <groupId>org.apache.poi</groupId> 8. <artifactId>poi-ooxml</artifactId> 9. <version>4.1.2</version> 10. </dependency>
导出:
先从数据库中将所有的数据查询出来:调用mapper查询
在内存中,写在浏览器:
【直接下载】
ExcelWriter writer = ExcelUtil.getWriter(true);
自定义标题别名 : 可以不写【不写使用的是类中的属性名】
writer.addHeaderAlias("属性","别名")
一次性将数据写入Excel :
writer.write(list,true);
设置响应头 :
1. // 设置响应头 2. response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml,sheet;charset=utf-8"); 3. String filename = URLEncoder.encode("用户信息","UTF-8"); // 文件名 4. response.setHeader("Content-Disposition","attachment;filename="+filename+".xlsx");
获取输出流 :
ServletOutputStream out = response.getOutputStream();
刷新,关闭资源:
1. writer.flush(out,true); 2. writer.close(); 3. out.close();
导入
1. @PostMapping("/down") 2. public boolean down(MultipartFile file) throws IOException { 3. // 通过文件获取输入流 4. InputStream is = file.getInputStream(); 5. // 借助hutool读取 6. ExcelReader reader = ExcelUtil.getReader(is); 7. List<List<Object>> list = reader.read(1); // 从第二行开始读 8. // 创建一个List集合 9. List<SysUser> users = CollUtil.newArrayList(); 10. // 遍历 11. for (List<Object> row : list) { 12. SysUser user = new SysUser(); 13. // 转换成字符串 14. user.setUsername(row.get(1).toString()); 15. user.setPassword(row.get(2).toString()); 16. user.setNickname(row.get(3).toString()); 17. user.setEmail(row.get(4).toString()); 18. user.setPhone(row.get(5).toString()); 19. user.setAddress(row.get(6).toString()); 20. // 遍历完一个添加一个 21. users.add(user); 22. } 23. // 调用mapper添加到数据库 24. return userService.addAll(users); 25. }