• SpringBoot实现Excel导入导出


    话不多说,直接上代码

    依赖文档

    找到pom文件,如下图所示

    引入需要的依赖

    1. <!-- hutool-->
    2. <dependency>
    3. <groupId>cn.hutool</groupId>
    4. <artifactId>hutool-all</artifactId>
    5. <version>5.7.20</version>
    6. </dependency>
    7. <dependency>
    8. <groupId>org.apache.poi</groupId>
    9. <artifactId>poi-ooxml</artifactId>
    10. <version>4.1.2</version>
    11. </dependency>

    导出写法:

    1. @GetMapping("/export")
    2. public void export(HttpServletResponse response) throws Exception {
    3. // 从数据库查询出所有的数据
    4. List<User> list = userService.list();
    5. // 左内存操作,写出到浏览器
    6. ExcelWriter writer = ExcelUtil.getWriter(true);
    7. // 自定义标题别名
    8. writer.addHeaderAlias("username", "用户名");
    9. writer.addHeaderAlias("password", "密码");
    10. writer.addHeaderAlias("nickname", "昵称");
    11. writer.addHeaderAlias("email", "邮箱");
    12. writer.addHeaderAlias("phone", "电话");
    13. writer.addHeaderAlias("address", "地址");
    14. writer.addHeaderAlias("createTime", "创建时间");
    15. // 一次性写出list内的对象到Excel,使用默认样式,强制输出标题
    16. writer.write(list, true);
    17. // 设置浏览器响应的格式
    18. response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
    19. String fileName = URLEncoder.encode("用户信息", "UTF-8");
    20. response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
    21. ServletOutputStream out = response.getOutputStream();
    22. writer.flush(out, true);
    23. out.close();
    24. writer.close();
    25. }

    导入写法:

    1. // export 导入
    2. @PostMapping("/import")
    3. public Result imp(MultipartFile file) throws Exception {
    4. InputStream inputStream = file.getInputStream();
    5. ExcelReader reader = ExcelUtil.getReader(inputStream);
    6. reader.addHeaderAlias("用户名", "username");
    7. reader.addHeaderAlias("密码", "password");
    8. reader.addHeaderAlias("昵称", "nickname");
    9. reader.addHeaderAlias("邮箱", "email");
    10. reader.addHeaderAlias("电话", "phone");
    11. reader.addHeaderAlias("地址", "address");
    12. List<User> list = reader.readAll(User.class);
    13. return Result.success(userService.saveBatch(list), "'返回成功'");
    14. }

    已上就是导入导出

  • 相关阅读:
    transformer模型训练结构解析(加深理解)
    tensorflow简单的Demo
    开源许可证概述:GNU, BSD, Apache, MPL, 和 MIT
    计算机毕业设计SSM电影售票管理系统【附源码数据库】
    【安全边界】
    从零搭建开发脚手架 顺应潮流开启升级 - SpringBoot 从2.x 升级到3.x
    读书笔记:SQL 查询中的SQL*Plus 替换变量(DEFINE变量)和参数
    【初阶数据结构】堆排序和TopK问题
    00前言说明-Qt自定义控件大全
    50Ω阻抗问题详解及射频电路设计中的阻抗匹配
  • 原文地址:https://blog.csdn.net/m0_55333789/article/details/132662443