需要的pom文件
<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>
前端上传表格,后端将数据写入数据库
public void imp(MultipartFile file) throws IOException {
InputStream inputStream = file.getInputStream();
ExcelReader reader = ExcelUtil.getReader(inputStream);
List<User> users = reader.readAll(User.class);
}
将数据库中的文件以表格导出
@Override
public void exportUser(HttpServletResponse response) throws IOException {
List<User> users = mapper.selectList(new QueryWrapper<User>());
ExcelWriter writer = ExcelUtil.getWriter(true);
// 一次性写出list内的对象到excel,使用默认样式,强制输出标题
writer.write(users, 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);
out.close();
writer.close();
}
设置表格头
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName("t_user")
@ApiModel("user的类型")
public class User {
@Alias("编号")
@TableId
Integer id;
@Alias("名字")
@ApiModelProperty("名字")
String name;
@Alias("密码")
String passwd;
}