EasyPOI真的是一款非常好用的文件导出工具,相较于传统的一行一列的数据导出,这种以实体类绑定生成的方式真的非常方便,也希望大家能够了解、掌握其使用方法,下面就用一个实例来简单介绍一下EasyPOI的使用。
1.导入依赖
-
- <dependency>
- <groupId>cn.afterturngroupId>
- <artifactId>easypoi-baseartifactId>
- <version>4.2.0version>
- dependency>
- <dependency>
- <groupId>cn.afterturngroupId>
- <artifactId>easypoi-webartifactId>
- <version>4.2.0version>
- dependency>
- <dependency>
- <groupId>cn.afterturngroupId>
- <artifactId>easypoi-annotationartifactId>
- <version>4.2.0version>
- 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
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("导出成功");
-
- }
导出成功:
