使用hutool工具类轻松实现导入导出
使用hutool工具类快速的实现导入导出
·
只有代码,解释较少,想看详细导入导出:
pom依赖:
基于springboot
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.20</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
导出:
先从数据库中将所有的数据查询出来:调用mapper查询
在内存中,写在浏览器:
【直接下载】
ExcelWriter writer = ExcelUtil.getWriter(true);
自定义标题别名 : 可以不写【不写使用的是类中的属性名】
writer.addHeaderAlias("属性","别名")
一次性将数据写入Excel :
writer.write(list,true);
设置响应头 :
// 设置响应头
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml,sheet;charset=utf-8");
String filename = URLEncoder.encode("用户信息","UTF-8"); // 文件名
response.setHeader("Content-Disposition","attachment;filename="+filename+".xlsx");
获取输出流 :
ServletOutputStream out = response.getOutputStream();
刷新,关闭资源:
writer.flush(out,true);
writer.close();
out.close();
导入
@PostMapping("/down")
public boolean down(MultipartFile file) throws IOException {
// 通过文件获取输入流
InputStream is = file.getInputStream();
// 借助hutool读取
ExcelReader reader = ExcelUtil.getReader(is);
List<List<Object>> list = reader.read(1); // 从第二行开始读
// 创建一个List集合
List<SysUser> users = CollUtil.newArrayList();
// 遍历
for (List<Object> row : list) {
SysUser user = new SysUser();
// 转换成字符串
user.setUsername(row.get(1).toString());
user.setPassword(row.get(2).toString());
user.setNickname(row.get(3).toString());
user.setEmail(row.get(4).toString());
user.setPhone(row.get(5).toString());
user.setAddress(row.get(6).toString());
// 遍历完一个添加一个
users.add(user);
}
// 调用mapper添加到数据库
return userService.addAll(users);
}
更多推荐
已为社区贡献3条内容
所有评论(0)