async-excel實現(xiàn)多sheet異步導(dǎo)出方法詳解
業(yè)務(wù)上如果需要單sheet導(dǎo)出,有時有需要將多個單sheet導(dǎo)出合并到一個excel里面此時,代碼寫起來也是頗為蛋碎,但是在async-excel中,你可以不改變原有任何邏輯,只需要在增加一個簡單的controller方法即可
具體代碼如下:
@RequestMapping("/exports")
public Long exports() {
DataExportParam<Oplog> param = new DataExportParam<>();
param.setExportFileName("導(dǎo)出測試");
param.setLimit(2);
//多個sheet導(dǎo)出時,行數(shù)計算為所有sheet的總行數(shù),順序為傳入數(shù)據(jù)組的順序
Long taskId = excelService
.doExport(param, OplogExportHandle.class, OplogExportHandleA.class);
return taskId;
}
不同參數(shù)如何處理?
DataExportParam 內(nèi)部攜帶了個map,你可以自由傳參,在不同的handler中可以按需獲取
sheet1
@ExcelHandle
public class OplogExportHandle implements ExportHandler<OplogExportModel> {
@Autowired
IOplogService oplogService;
@Override
public void init(ExcelContext context, DataParam param) {
ExportContext ctx = (ExportContext) context;
//此處的sheetNo會被覆蓋,為了兼容多sheet
WriteSheet sheet = EasyExcel.writerSheet(0, "第一個sheet").head(OplogExportModel.class).build();
ctx.setWriteSheet(sheet);
}
@Override
public void beforePerPage(ExportContext ctx, DataExportParam param) {
//每頁開始處理前
}
@Override
public ExportPage<OplogExportModel> exportData(int startPage, int limit, DataExportParam param) {
//你的業(yè)務(wù)邏輯
return result;
}
}
sheet2
@ExcelHandle
public class OplogExportHandleA implements ExportHandler<OplogExportModel> {
@Autowired
IOplogService oplogService;
@Override
public void init(ExcelContext context, DataParam param) {
ExportContext ctx = (ExportContext) context;
//此處的sheetNo會被覆蓋,為了兼容一個文件多sheet導(dǎo)出
WriteSheet sheet = EasyExcel.writerSheet(0, "第二個sheet").head(OplogExportModel.class).build();
ctx.setWriteSheet(sheet);
}
@Override
public ExportPage<OplogExportModel> exportData(int startPage, int limit, DataExportParam param) {
//你的業(yè)務(wù)邏輯
return result;
}
}
效果如下


到此這篇關(guān)于async-excel實現(xiàn)多sheet異步導(dǎo)出方法詳解的文章就介紹到這了,更多相關(guān)async-excel多sheet異步導(dǎo)出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實現(xiàn)貪吃蛇大作戰(zhàn)小游戲(附源碼)
今天給大家?guī)淼氖切№椖渴?nbsp;基于Java+Swing+IO流實現(xiàn) 的貪吃蛇大作戰(zhàn)小游戲。實現(xiàn)了界面可視化、基本的吃食物功能、死亡功能、移動功能、積分功能,并額外實現(xiàn)了主動加速和鼓勵機制,需要的可以參考一下2022-07-07
Spring Cloud Gateway 記錄請求應(yīng)答數(shù)據(jù)日志操作
這篇文章主要介紹了Spring Cloud Gateway 記錄請求應(yīng)答數(shù)據(jù)日志操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
SpringBoot解決數(shù)據(jù)庫時間和返回時間格式不一致的問題
這篇文章主要介紹了SpringBoot解決數(shù)據(jù)庫時間和返回時間格式不一致的問題,文章通過代碼示例和圖文結(jié)合的方式講解的非常詳細,對大家的學(xué)習(xí)和工作有一定的幫助,需要的朋友可以參考下2024-03-03
解決IDEA springboot"spring-boot-maven-plugin"報紅問題
這篇文章主要介紹了解決IDEA springboot"spring-boot-maven-plugin"報紅問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
springcloud Zuul動態(tài)路由的實現(xiàn)
這篇文章主要介紹了springcloud Zuul動態(tài)路由的實現(xiàn),詳細的介紹了什么是Zuu及其動態(tài)路由的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11

