写了一个导出demo 没有详细检查 各位大佬如果发现哪里不对 欢迎指正
1、引入easyexcel
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>1.0.2</version>
</dependency>
2、创建导出实体类,
导出实体类需要继承BaseRowModel,每个字段上加注解@ExcelProperty(value = "", index = 0)
value值为在excel中想要显示的列表头名 index为第几列
@Data
public class DataDownloadRecordExcelExportVO extends BaseRowModel {
@ExcelProperty(value = "资源名称", index = 0)
private String resourceName;
@ExcelProperty(value = "数据源", index = 1)
private String dataSource;
}
3、编写实现类
代码中的filename是excel的文件名 自己决定就好
List<导出实体类> resultList= mapper.list(vo);
if (!CollectionUtils.isEmpty(resultList)) {
OutputStream out = null;
try {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName + ExcelTypeEnum.XLSX.getValue(), "utf-8"));
out = response.getOutputStream();
ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX);
// 写数据到 Writer 上下文中
// 入参1: 数据库查询的数据list集合
// 入参2: 要写入的目标 sheet
Sheet sheet1 = new Sheet(1, 0, 导出实体类.class);
// 将上下文中的最终 outputStream 写入到指定文件中
writer.write(resultList, sheet1);
writer.finish();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}