软件编程
位置:首页>> 软件编程>> java编程>> SpringBoot+easypoi实现数据的Excel导出

SpringBoot+easypoi实现数据的Excel导出

作者:进击的_菜鸡  发布时间:2023-04-05 12:27:19 

标签:SpringBoot,easypoi,Excel

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

}

来源:https://blog.csdn.net/weixin_40325475/article/details/102567163

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com