使用Hutool工具包 导出excel文件
- 首先我们需要导入下面依赖:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-poi</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
- 实体类
@Getter
@Setter
public class User {
@TableId(type = IdType.AUTO)
private Long id;
@ApiParam("姓名")
private String name;
@ApiParam("年龄")
private String age;
@ApiParam("性别")
private String sex;
}
- 随意编写一个测试代码:
@ApiOperation("导出报表")
@GetMapping(value = "/excel", produces = {"application/xlsx"})
public byte[] exportExcel(AppUserSearch search) {
List<AppUser> userList = userService.userList(search);
ByteArrayOutputStream out = new ByteArrayOutputStream();
//通过工具类创建writer并设置是否只保留别名对应的字段
ExcelWriter writer = ExcelUtil.getWriter().setOnlyAlias(true);
//获取日期单元格样式并设置时间类型
writer.getStyleSet().getCellStyleForDate().setDataFormat((short) BuiltinFormats.getBuiltinFormat("m/d/yy"));
writer.addHeaderAlias("name", "姓名");
writer.addHeaderAlias("age", "年龄");
writer.addHeaderAlias("sex", "性别");
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(userList, true);
//清除该流的所有缓冲区
writer.flush(out);
// 关闭writer,释放内存
writer.close();
return out.toByteArray();
}
前端(vue)导出excel表格请参考后台二进制文件转为Excel格式