亲宝软件园·资讯

展开

SpringBoot数据Excel导出 SpringBoot+easypoi实现数据的Excel导出

进击的_菜鸡 人气:0
想了解SpringBoot+easypoi实现数据的Excel导出的相关内容吗,进击的_菜鸡在本文为您仔细讲解SpringBoot数据Excel导出的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:SpringBoot,easypoi,Excel,下面大家一起来学习吧。

maven

<dependency>
      <groupId>cn.afterturn</groupId>
     <artifactId>easypoi-spring-boot-starter</artifactId>
     <version>4.1.0</version>
</dependency>

Controller层

// 接口不需要返回值
@RequestMapping(value = "/export-activity-data")
public void exportActivityData(@RequestParam String activityType,
                                   @RequestParam String activityState,
                                   @RequestParam String queryValue,
                                   @RequestParam String levelValue,
                                   @RequestParam String startTime,
                                   @RequestParam String endTime, HttpServletResponse response) {
        try {
            manageService.exportActivityData(TFActivityQueryParam.builder()
                    .activityState(activityState)
                    .activityType(activityType)
                    .queryValue(queryValue)
                    .levelValue(levelValue)
                    .startTime("".equals(endTime) ? null : new Date(DateTime.parse(startTime).getMillis()))
                    .endTime("".equals(endTime) ? null : new Date(DateTime.parse(endTime).getMillis())).build(), response);
        } catch (IOException e) {
           log.info( "导出失败", e);
        }
    }

service层

public void exportActivityData(TFActivityQueryParam param, HttpServletResponse response) throws IOException {
        response.setCharacterEncoding("UTF-8");
        response.setHeader("content-Type", "application/vnd.ms-excel");
        response.setHeader("Content-Disposition",
                "attachment;filename=" + URLEncoder.encode("活动综合数据.xls", "UTF-8"));
        val out = response.getOutputStream();

        List<TFActivityQueryResult> tfActivityList = getTFActivityList(param);
        List<TFActivityQueryResultExportDto> exportDtoList = new ArrayList<>();
        tfActivityList.forEach(activity -> {
            TFActivityQueryResultExportDto convert = TFActivityQueryResultExportDto.convert(activity);
            if (activity.getLevelType().equals("0")) {
                convert.setAffiliation("云南省");
            } else {
                EparchyCode eparchyCode = getEparchyCodeList().stream()
                        .filter(code -> code.getEparchyCode().equals(activity.getEparchyCode()))
                        .collect(Collectors.toList()).get(0);
                convert.setAffiliation(eparchyCode.getEparchyShortName());
            }
            exportDtoList.add(convert);
        });

        Workbook workbook = ExcelExportUtil.exportExcel(
                new ExportParams("活动综合数据", "活动"), TFActivityQueryResultExportDto.class, exportDtoList);
        log.info("workbook: {}", workbook);
        workbook.write(out);
        out.close();
 }

数据bean

public class TFActivityQueryResultExportDto {

    @Excel(name = "活动编码", width = 20)
    private String activityCode;
    @Excel(name = "活动名称", width = 20)
    private String activityName;
    @Excel(name = "活动标题", width = 20)
    private String activityTitle;
    @Excel(name = "归属", width = 20)
    private String affiliation;
    @Excel(name = "活动类型", width = 20)
    private String activityType;
    @Excel(name = "活动时间", width = 30)
    private String activityTime;
    @Excel(name = "活动状态", width = 20)
    private String activityState;
    @Excel(name = "备注", width = 30)
    private String remark;

    @Excel(name = "创建时间", width = 30)
    private String timeCreate;
    @Excel(name = "最新操作人", width = 30)
    private String operatorName;
    @Excel(name = "更新时间", width = 30)
    private String timeUpdate;

}

加载全部内容

相关教程
猜你喜欢
用户评论