EasyExcel整合springboot

1、pom依赖

<!-- easyExcel 相关依赖 -->
 <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.2.7</version>
        </dependency>

Service示范

@Override
    public void exportExcel(HttpServletResponse response, String caseId) {
        List<CaseAnswer> list = tblCaseAnswerMapper.getExperimentCompletionRate(Long.parseLong(caseId));
        try {
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            response.setCharacterEncoding("utf-8");
            String fileName = URLEncoder.encode("报表-" + System.currentTimeMillis(), "UTF-8").replaceAll("\\+", "%20");
            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
            Set<String> set = new HashSet<>();
            set.add("caseName");
            set.add("clazzName");
            set.add("pupilName");
            set.add("genderName");
            set.add("pupilNum");
            set.add("experimentName");
            set.add("rate");
            EasyExcel.write(response.getOutputStream(), CaseAnswer.class)
                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .includeColumnFiledNames(set)
                    .sheet()
                    .doWrite(list);
            response.getOutputStream().close();
            response.getOutputStream().flush();
        } catch (Exception e) {
            logger.error(e.getMessage());
            e.printStackTrace();
        }
    }

3、实体类

``

    @ExcelProperty(value = "案例名称",order = 1)
    @Transient
    private String caseName;

    @ExcelProperty(value = "学生姓名",order = 3)
    @Transient
    private String pupilName;

    @ExcelProperty(value = "学生学号",order = 5)
    @Transient
    private String pupilNum;

    @ExcelProperty(value = "实验名称",order = 6)
    @Transient
    private String experimentName;

    @ExcelProperty(value = "班级名称",order = 2)
    @Transient
    private String clazzName;
    /**
     * 实验完成率
     */
    @ExcelProperty(value = "实验完成率",order = 7)
    @Transient
    private String rate;

    @ExcelProperty(value = "性别",order = 4)
    @Transient
    private String genderName;

5、controller

 @GetMapping("/exportExcel")
    public Result exportExcel(HttpServletResponse response, @RequestParam String caseId) {
        teacherCaseAnswerService.exportExcel(response, caseId);
        return ResultGenerator.genSuccessResult();
    }