文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringBoot+easypoi实现数据的Excel导出

2024-04-02 19:55

关注

本文实例为大家分享了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;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯