springboot导出excel操作

业务场景:

后台需要提供一个导出所有数据的接口,将导出的excel表格返回给前端展示

代码层面:

展示主要跟导出功能相关的代码,主要流程:获取业务数据,形成excel数据流,导出excel

 @PostMapping(value = "/v1/analysis/mission/readrecordExport")public void readrecordExport(@RequestBody MissionReadRecordRequest missionReadRecordRequest,HttpServletResponse response) throws IOException {missionReadRecordRequest.setPage(1);missionReadRecordRequest.setSize(99999);if(missionReadRecordRequest.getBeginTime()==null){missionReadRecordRequest.setBeginTime(DateUtils.getDate(-30));}if(missionReadRecordRequest.getEndTime()==null){missionReadRecordRequest.setEndTime(new Date());}else{missionReadRecordRequest.setEndTime(DateUtils.getDateAfter(missionReadRecordRequest.getEndTime(),1));}List list = missionReadRecordService.getMemberMissionReadRecordList(missionReadRecordRequest);SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss");String title = simpleDateFormat.format(new Date()) + ".xls";//使用流将数据导出OutputStream out = null;try {out = response.getOutputStream();//防止中文乱码response.setHeader("Content-Type", "application/x-xls");response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");response.setHeader("Content-Disposition", "attachment;fileName=" + new String(title.getBytes(), "UTF-8"));Map headers = new LinkedHashMap<>();headers.put("createTime", "创建时间");headers.put("jobType", "任务类型");headers.put("readContentType", "阅读内容类型");headers.put("title", "内容标题");headers.put("objectId", "内容id");headers.put("coinAmount", "奖励金币数");headers.put("readTime", "阅读时长");headers.put("todayCount", "当日同类奖励计数");List> dataset = list.stream().map(dto -> {Map map = new HashMap<>();map.put("createTime", dto.getCreateTime());map.put("jobType", dto.getJobType());map.put("readContentType", dto.getReadContentType());map.put("title", dto.getTitle());map.put("objectId", dto.getObjectId());map.put("coinAmount", dto.getCoinAmount());map.put("readTime", dto.getReadTime());map.put("todayCount", dto.getTodayCount());return map;}).collect(Collectors.toList());ExcelUtil.exportExcelwithTitle(title, headers, dataset, out, "yyyy-MM-dd HH:mm:ss");} finally {if (out != null) {out.flush();}if (out != null) {out.close();}}}
package com.mongcent.core.commons.ui.ExcelUtil;import org.apache.commons.beanutils.BeanComparator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collectio


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部