EasyPOI真的是一款非常好用的文件导出工具,相较于传统的一行一列的数据导出,这种以实体类绑定生成的方式真的非常方便,也希望大家能够了解、掌握其使用方法,下面就用一个实例来简单介绍一下EasyPOI的使用。
1.导入依赖
<!-- easypoi导出 -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.2.0</version>
</dependency>
2.创建对应实体类
package com.wulian.training.center.export;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
@Data
public class TestScoreExportDTO {
/**
* 序号
*/
@Excel(name = "序号", orderNum = "1", width = 15)
private Integer id;
/**
* 人员名称
*/
@Excel(name = "人员名称", orderNum = "2", width = 15)
private String personName;
/**
* 达标天数
*/
@Excel(name = "达标天数", orderNum = "3", width = 15)
private Integer passCount;
/**
* 积分总数
*/
@Excel(name = "积分总数", orderNum = "4", width = 15)
private String totalScore;
/**
* 日平均积分
*/
@Excel(name = "日平均积分", orderNum = "5", width = 15)
private String avgScore;
/**
* 积分排名
*/
@Excel(name = "积分排名", orderNum = "6", width = 15)
private Integer number;
}
3.导出方法
@PostMapping("/export")
@ApiOperation(value = "导出")
public ResultMoudel export(@RequestParam(required = false)String name,HttpServletRequest request) throws IOException {
Map map=new HashMap();
map.put("name",name);
map.put("companyId",sysUser.getCompanyId());
List<TestScoreExportDTO> list=appTestManageMapper.selectOrderByTypePage(map);
AtomicInteger id = new AtomicInteger(new Integer(1));
list.stream().forEach(iter->{
iter.setId(id.getAndIncrement());
});
String fileName = "积分信息";
//设置导出参数
ExportParams exportParams = new ExportParams("积分信息", "排名", ExcelType.XSSF);
//设置表头
exportParams.setCreateHeadRows(true);
// exportParams.setAddIndex(true);
//数据渲染
Workbook sheets = ExcelExportUtil.exportExcel(exportParams, TestScoreExportDTO.class, list);
//导出
final String downloadName = new String((fileName + ExcelTypeEnum.XLSX.getValue()).getBytes(), StandardCharsets.ISO_8859_1);
// response.setCharacterEncoding("UTF-8");
response.setHeader("content-Type", "application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=" + downloadName);
//获取输出流,将excel输出
ServletOutputStream outputStream = response.getOutputStream();
sheets.write(outputStream);
return new ResultMoudel<>().success("导出成功");
}
导出成功: