SpringBoot+easypoi實現(xiàn)數(shù)據(jù)的Excel導出
更新時間:2021年05月20日 17:13:54 作者:進擊的_菜雞
這篇文章主要為大家詳細介紹了SpringBoot+easypoi實現(xiàn)數(shù)據(jù)的Excel導出,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了SpringBoot+easypoi實現(xiàn)數(shù)據(jù)的Excel導出的具體代碼,供大家參考,具體內(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( "導出失敗", 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("活動綜合數(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("活動綜合數(shù)據(jù)", "活動"), TFActivityQueryResultExportDto.class, exportDtoList);
log.info("workbook: {}", workbook);
workbook.write(out);
out.close();
}
數(shù)據(jù)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 = "活動狀態(tài)", width = 20)
private String activityState;
@Excel(name = "備注", width = 30)
private String remark;
@Excel(name = "創(chuàng)建時間", width = 30)
private String timeCreate;
@Excel(name = "最新操作人", width = 30)
private String operatorName;
@Excel(name = "更新時間", width = 30)
private String timeUpdate;
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java根據(jù)坐標經(jīng)緯度計算兩點距離5種方法及校驗經(jīng)緯度是否在圓/多邊形區(qū)域內(nèi)的算法推薦
在項目開發(fā)過程中需要根據(jù)兩地經(jīng)緯度坐標計算兩地間距離,下面這篇文章主要給大家介紹了關(guān)于Java根據(jù)坐標經(jīng)緯度計算兩點距離5種方法以及校驗經(jīng)緯度是否在圓/多邊形區(qū)域內(nèi)的算法推薦,需要的朋友可以參考下2023-12-12
Java的System.getProperty()方法獲取大全
這篇文章主要介紹了Java的System.getProperty()方法獲取大全,羅列了System.getProperty()方法獲取各類信息的用法,具有一定的參考借鑒價值,需要的朋友可以參考下2014-12-12
Spring中Websocket身份驗證和授權(quán)的實現(xiàn)
在Web應(yīng)用開發(fā)中,安全一直是非常重要的一個方面,本文主要介紹了Spring中Websocket身份驗證和授權(quán)的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-08-08
JAVA構(gòu)造方法/構(gòu)造器以及this使用方式
這篇文章主要介紹了JAVA構(gòu)造方法/構(gòu)造器以及this使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03

