SpringBoot+easypoi實(shí)現(xiàn)數(shù)據(jù)的Excel導(dǎo)出
本文實(shí)例為大家分享了SpringBoot+easypoi實(shí)現(xiàn)數(shù)據(jù)的Excel導(dǎo)出的具體代碼,供大家參考,具體內(nèi)容如下
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( "導(dǎo)出失敗", 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("活動(dòng)綜合數(shù)據(jù).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("活動(dòng)綜合數(shù)據(jù)", "活動(dòng)"), TFActivityQueryResultExportDto.class, exportDtoList); log.info("workbook: {}", workbook); workbook.write(out); out.close(); }
數(shù)據(jù)bean
public class TFActivityQueryResultExportDto { @Excel(name = "活動(dòng)編碼", width = 20) private String activityCode; @Excel(name = "活動(dòng)名稱", width = 20) private String activityName; @Excel(name = "活動(dòng)標(biāo)題", width = 20) private String activityTitle; @Excel(name = "歸屬", width = 20) private String affiliation; @Excel(name = "活動(dòng)類型", width = 20) private String activityType; @Excel(name = "活動(dòng)時(shí)間", width = 30) private String activityTime; @Excel(name = "活動(dòng)狀態(tài)", width = 20) private String activityState; @Excel(name = "備注", width = 30) private String remark; @Excel(name = "創(chuàng)建時(shí)間", width = 30) private String timeCreate; @Excel(name = "最新操作人", width = 30) private String operatorName; @Excel(name = "更新時(shí)間", width = 30) private String timeUpdate; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java根據(jù)坐標(biāo)經(jīng)緯度計(jì)算兩點(diǎn)距離5種方法及校驗(yàn)經(jīng)緯度是否在圓/多邊形區(qū)域內(nèi)的算法推薦
在項(xiàng)目開發(fā)過程中需要根據(jù)兩地經(jīng)緯度坐標(biāo)計(jì)算兩地間距離,下面這篇文章主要給大家介紹了關(guān)于Java根據(jù)坐標(biāo)經(jīng)緯度計(jì)算兩點(diǎn)距離5種方法以及校驗(yàn)經(jīng)緯度是否在圓/多邊形區(qū)域內(nèi)的算法推薦,需要的朋友可以參考下2023-12-12Java的System.getProperty()方法獲取大全
這篇文章主要介紹了Java的System.getProperty()方法獲取大全,羅列了System.getProperty()方法獲取各類信息的用法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12Spring中Websocket身份驗(yàn)證和授權(quán)的實(shí)現(xiàn)
在Web應(yīng)用開發(fā)中,安全一直是非常重要的一個(gè)方面,本文主要介紹了Spring中Websocket身份驗(yàn)證和授權(quán)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08簡(jiǎn)單總結(jié)Java IO中stream流的使用方法
這篇文章主要介紹了Java IO中stream流的使用方法的簡(jiǎn)單總結(jié),包括數(shù)據(jù)流和打印流等Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-03-03JAVA構(gòu)造方法/構(gòu)造器以及this使用方式
這篇文章主要介紹了JAVA構(gòu)造方法/構(gòu)造器以及this使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03如何通過Kaptcha在Web頁(yè)面生成驗(yàn)證碼
這篇文章主要介紹了如何通過Kaptcha在Web頁(yè)面生成驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10