本文实例为大家分享了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; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。