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使用DateFormatter格式化日期時間的方法示例
這篇文章主要介紹了Java使用DateFormatter格式化日期時間的方法,結(jié)合具體實例分析了java使用DateFormatter格式化日期時間的相關(guān)操作技巧,需要的朋友可以參考下2017-04-04Java線程池運行狀態(tài)監(jiān)控實現(xiàn)解析
這篇文章主要介紹了Java線程池運行狀態(tài)監(jiān)控實現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10Java利用TCP實現(xiàn)服務(wù)端向客戶端消息群發(fā)的示例代碼
這篇文章主要為大家詳細(xì)介紹了Java如何利用TCP協(xié)議實現(xiàn)服務(wù)端向客戶端消息群發(fā)功能,文中的示例代碼講解詳細(xì),需要的可以參考下,希望對你有所幫助2022-08-08