使用hutool工具类轻松实现导入导出

简介: 只有代码,解释较少,想看详细导入导出:

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. }


目录
相关文章
|
机器学习/深度学习 数据采集 人工智能
人工智能安全(下)
人工智能安全(下)
892 0
人工智能安全(下)
|
Java 机器人 Maven
【Java用法】微服务之间的相互调用方式之一,通过FeignClient客户端调用其他微服务的方法包含熔断器(Hystrix)
【Java用法】微服务之间的相互调用方式之一,通过FeignClient客户端调用其他微服务的方法包含熔断器(Hystrix)
416 0
el-tree技巧之只能选中最后一层级的子节点以及查找树结构第一个无子节点的叶节点
el-tree技巧之只能选中最后一层级的子节点以及查找树结构第一个无子节点的叶节点
|
iOS开发 MacOS
【Mac系统】解决Vscode中LeetCode插件不能刷剑指offer题库
文章讨论了解决Mac系统中Vscode里LeetCode插件无法刷剑指Offer题库的问题,并提供了一些相关的使用技巧和资源链接。
794 1
|
SQL 前端开发 关系型数据库
芋道框架万字详解(前后端分离)、若依框架、yudao-cloud保姆级攻略
芋道框架万字详解(前后端分离)、若依框架、yudao-cloud保姆级攻略
20256 6
|
Java Apache Windows
commons-fileupload组件和commons-io组件的详细下载
这篇文章提供了Apache Commons FileUpload和Commons IO组件的详细下载方法,包括下载地址和如何从压缩包中获取相应的jar类库文件。
|
SQL Java 数据库连接
Java实战:hutool-db实现多数据源配置
我们在日常开发中,经常会用到一个系统需要链接多个数据库来实现业务的需求,比如多个系统之间数据调用、两个数据之间同步等等。
Java实战:hutool-db实现多数据源配置
|
前端开发 安全 小程序
如何设计 API 接口,实现统一格式返回?
如何设计 API 接口,实现统一格式返回?
352 0
|
JavaScript Java 关系型数据库
基于SpringBoot+Vue的个人云盘管理系统的设计与实现(源码+部署说明+演示视频+源码介绍)(1)
基于SpringBoot+Vue的个人云盘管理系统的设计与实现(源码+部署说明+演示视频+源码介绍)
346 0

热门文章

最新文章