欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

async-excel實(shí)現(xiàn)多sheet異步導(dǎo)出方法詳解

 更新時(shí)間:2022年12月23日 12:26:48   作者:起風(fēng)哥  
這篇文章主要介紹了async-excel實(shí)現(xiàn)多sheet異步導(dǎo)出方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

async-excel組件開(kāi)源地址

業(yè)務(wù)上如果需要單sheet導(dǎo)出,有時(shí)有需要將多個(gè)單sheet導(dǎo)出合并到一個(gè)excel里面此時(shí),代碼寫(xiě)起來(lái)也是頗為蛋碎,但是在async-excel中,你可以不改變?cè)腥魏芜壿?,只需要在增加一個(gè)簡(jiǎn)單的controller方法即可

具體代碼如下:

    @RequestMapping("/exports")
    public Long exports() {
        DataExportParam<Oplog> param = new DataExportParam<>();
        param.setExportFileName("導(dǎo)出測(cè)試");
        param.setLimit(2);
        //多個(gè)sheet導(dǎo)出時(shí),行數(shù)計(jì)算為所有sheet的總行數(shù),順序?yàn)閭魅霐?shù)據(jù)組的順序
        Long taskId = excelService
            .doExport(param, OplogExportHandle.class, OplogExportHandleA.class);
        return taskId;
    }

不同參數(shù)如何處理?

DataExportParam 內(nèi)部攜帶了個(gè)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會(huì)被覆蓋,為了兼容多sheet
        WriteSheet sheet = EasyExcel.writerSheet(0, "第一個(gè)sheet").head(OplogExportModel.class).build();
        ctx.setWriteSheet(sheet);
    }
    @Override
    public void beforePerPage(ExportContext ctx, DataExportParam param) {
        //每頁(yè)開(kāi)始處理前
    }
    @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會(huì)被覆蓋,為了兼容一個(gè)文件多sheet導(dǎo)出
        WriteSheet sheet = EasyExcel.writerSheet(0, "第二個(gè)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實(shí)現(xiàn)多sheet異步導(dǎo)出方法詳解的文章就介紹到這了,更多相關(guān)async-excel多sheet異步導(dǎo)出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論