easyexcel动态头导出

一.创建RecruitEmployeeVo对象
public class RecruitEmployeeVo {
/**
* 部门名称
*/
private String department;

/**
 * 学员数量
 */
private String studentNum;

/**
* 班型集合
/
private List classTypeVoList;
}
二. 查询出需要导出的集合
List managerList = this.getStudentNumByDeptId(null,employeeVo);
※注意:每个RecruitEmployeeVo对象中必须存在SysClassTypeList数据.
//动态头集合
List classTypeVoList = sysClassTypeService.getClassTypeList(sysTenant.getUuid());
//设置日期格式
response.setContentType(“application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”);
response.setCharacterEncoding(“utf-8”);
// 这里URLEncoder.encode可以防止中文乱码 和easyexcel没有关系
String fileName = URLEncoder.encode(“员工招生统计” + sdf.format(new Date()), “UTF-8”).replaceAll(“\+”, “%20”);
// String fileName = “D://abc.xlsx”;
response.setHeader(“Content-disposition”, "attachment;filename
=utf-8’'" + fileName + “.xlsx”);
EasyExcel.write(response.getOutputStream()).autoCloseStream(Boolean.FALSE)
// 动态头List
.head(headEmployee(classTypeVoList)).sheet(“员工招生信息”)
//数据 List<List>
.doWrite(dataEmployee(managerList));
三.丰富导出头
private List<List> headEmployee(List classTypeList) {
//此处为固定头
List<List> list = new ArrayList<List>();
List head0 = new ArrayList();
head0.add(“部门名称”);
List head1 = new ArrayList();
head1.add(“学员数量”);
list.add(head0);
list.add(head1);
list.add(head2);
//此处丰富动态头
for (SysClassType classType : classTypeList) {
List head = new ArrayList();
head.add(classType.getName());
list.add(head);
}
return list;
}
四.丰富数据
private List<List> dataEmployee(List managerList) {
List<List> list = new ArrayList<List>();
for (RecruitEmployeeVo manager : managerList) {
//此处为固定数据
List data = new ArrayList();
data.add(manager.getDepartment());
data.add(manager.getStudentNum());
//此处丰富动态数据
for (ClassTypeVo type : manager.getClassTypeVoList()) {
data.add(type.getStudentNum());
}
list.add(data);
}
return list;
}

五.此处记录一下常规easyexcel导出
//导出数据
List managerList = baseMapper.recruitDepartment(recruitDepartmentVo.getDeptId(),recruitDepartmentVo.getTid());
response.setContentType(“application/vnd.ms-excel”);
response.setCharacterEncoding(“utf-8”);
try {
String fileName = URLEncoder.encode(“招生部门统计”, “UTF-8”);
response.setHeader(“Content-disposition”, “attachment;filename=” + fileName + “.xlsx”);
EasyExcel.write(response.getOutputStream(), RecruitDepartmentVo.class).sheet(“招生部门统计”).doWrite(managerList);
} catch (IOException e) {
e.printStackTrace();
}

PS:主要为了方便后期自己查找,如有问题欢迎指正.当然也希望能够对各位同行有帮助!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值