最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Easypoi 輕松實(shí)現(xiàn)復(fù)雜excel文件導(dǎo)出功能

 更新時(shí)間:2021年11月29日 10:21:14   作者:CodeSpike  
這篇文章主要介紹了Easypoi 輕松實(shí)現(xiàn)復(fù)雜excel文件導(dǎo)出功能,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

之前做的excel文件導(dǎo)出都相對(duì)簡(jiǎn)單,用的都是公司自己封裝的一些poi方法,導(dǎo)出內(nèi)容都是表頭+一行行的數(shù)據(jù),但是這次需要導(dǎo)出的excel復(fù)雜度高了不少,自己用現(xiàn)有方法做比較麻煩,因此引入了Easypoi 進(jìn)行實(shí)現(xiàn)。

之所以用Easypoi我是看中了它可以直接根據(jù)現(xiàn)有模板填充數(shù)據(jù)實(shí)現(xiàn)excel生成,而模板產(chǎn)品已經(jīng)給出,那么接下來(lái)只需要稍微做修改就能使用,修改后的模板如圖:

對(duì)照著官方文檔的示例(http://easypoi.mydoc.io/ ) 很容易就能理解模板的使用規(guī)則
注意其中的{{$fe: 是遍歷listmap變量循環(huán)填充數(shù)據(jù)行,其他則是類(lèi)似占位符,很好理解

 //代碼就純粹只是把模板的占位符和變量對(duì)應(yīng)起來(lái)
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("code", customer.getCode());
        map.put("name", customer.getName());
        map.put("mobile", customer.getMobile());
        map.put("membershipGrade", customer.getMembershipGrade());
        map.put("zzyMembershipGrade", customer.getZzyMembershipGrade());
        map.put("addressComplete", customer.getAddressComplete());
        List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();

        map.put("maplist", listMap);
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        for (MainOrderSubOrderFinanceResult financeResult : mainOrderSubOrderFinanceResults) {
            Map<String, String> lm = new HashMap<String, String>();
            lm.put("orderCode", financeResult.getOrderCode());
            lm.put("payStatusDesc", financeResult.getPayStatusDesc());
            lm.put("settlementTypeDesc", financeResult.getSettlementTypeDesc());
            lm.put("billDate", dateFormat.format(financeResult.getBillDate()));
            lm.put("totalAmount", financeResult.getTotalAmount().stripTrailingZeros().toPlainString());
            lm.put("discountAmount", financeResult.getDiscountAmount().stripTrailingZeros().toPlainString());
            lm.put("amount", financeResult.getAmount().stripTrailingZeros().toPlainString());
            lm.put("payAmount", financeResult.getPayAmount().stripTrailingZeros().toPlainString());
            lm.put("amountPaid", financeResult.getAmountPaid().stripTrailingZeros().toPlainString());
            listMap.add(lm);

            sumTotalAmount = sumTotalAmount.add(financeResult.getTotalAmount());
            sumDiscountAmount = sumDiscountAmount.add(financeResult.getDiscountAmount());
            sumAmount = sumAmount.add(financeResult.getAmount());
            sumPayAmount = sumPayAmount.add(financeResult.getPayAmount());
            sumAmountPaid = sumAmountPaid.add(financeResult.getAmountPaid());
        }
        map.put("sumTotalAmount", sumTotalAmount);
        map.put("sumDiscountAmount", sumDiscountAmount);
        map.put("sumAmount", sumAmount);
        map.put("sumPayAmount", sumPayAmount);
        map.put("sumAmountPaid", sumAmountPaid);
        //生成臨時(shí)模板文件
        String url="";
        try {
            File temp = File.createTempFile("exportCreditBillResult", ".xlsx");
            FileUploadHelper.inputStream2File(this.getClass().getClassLoader().getResourceAsStream("exportCreditBillResult.xlsx"),temp);
            url=temp.getAbsolutePath();
            temp.deleteOnExit();
        } catch (IOException e) {

        }

        TemplateExportParams params = new TemplateExportParams(url);
        Workbook workbook = ExcelExportUtil.exportExcel(params, map);

做這個(gè)功能有一個(gè)關(guān)鍵點(diǎn):

由于TemplateExportParams構(gòu)造函數(shù)只支持傳入文件路徑,而直接傳入resource下的模板文件路徑在線上環(huán)境會(huì)有問(wèn)題(本地沒(méi)問(wèn)題),因此需要用getResourceAsStream讀取后生成臨時(shí)文件,再把臨時(shí)文件url傳入

到此這篇關(guān)于Easypoi 輕松實(shí)現(xiàn)復(fù)雜excel文件導(dǎo)出功能的文章就介紹到這了,更多相關(guān)Easypoi導(dǎo)出復(fù)雜excel文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解CopyOnWriteArrayList是如何保證線程安全

    詳解CopyOnWriteArrayList是如何保證線程安全

    這篇文章主要為大家介紹了CopyOnWriteArrayList是如何保證線程安全講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 解決springMVC 跳轉(zhuǎn)js css圖片等靜態(tài)資源無(wú)法加載的問(wèn)題

    解決springMVC 跳轉(zhuǎn)js css圖片等靜態(tài)資源無(wú)法加載的問(wèn)題

    下面小編就為大家?guī)?lái)一篇解決springMVC 跳轉(zhuǎn)js css圖片等靜態(tài)資源無(wú)法加載的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • Spring?AOP概念及原理解析

    Spring?AOP概念及原理解析

    這篇文章主要介紹了Spring?AOP概念及原理?,通過(guò)使用?Spring?AOP?實(shí)現(xiàn)日志管理,我們可以將日志記錄的邏輯從業(yè)務(wù)邏輯中分離出來(lái),簡(jiǎn)化了代碼的維護(hù),需要的朋友可以參考下
    2024-07-07
  • Java環(huán)境下高德地圖Api的使用方式

    Java環(huán)境下高德地圖Api的使用方式

    這篇文章主要介紹了Java環(huán)境下高德地圖Api的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • mybatis一對(duì)多方式實(shí)現(xiàn)批量插入

    mybatis一對(duì)多方式實(shí)現(xiàn)批量插入

    這篇文章主要介紹了mybatis一對(duì)多方式實(shí)現(xiàn)批量插入,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java禁止使用finalize方法

    Java禁止使用finalize方法

    這篇文章主要介紹了Java禁止使用finalize方法,需要的朋友可以參考下
    2017-10-10
  • springboot配置開(kāi)發(fā)和測(cè)試環(huán)境并添加啟動(dòng)路徑方式

    springboot配置開(kāi)發(fā)和測(cè)試環(huán)境并添加啟動(dòng)路徑方式

    這篇文章主要介紹了springboot配置開(kāi)發(fā)和測(cè)試環(huán)境并添加啟動(dòng)路徑方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java中實(shí)現(xiàn) SHA-256加密的兩種方式

    Java中實(shí)現(xiàn) SHA-256加密的兩種方式

    這篇文章主要介紹了Java中實(shí)現(xiàn) SHA-256加密的兩種方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • Java的類(lèi)型擦除式泛型詳解

    Java的類(lèi)型擦除式泛型詳解

    Java語(yǔ)言中的泛型只存在于程序源碼之中,在編譯后的字節(jié)碼文件里,則全部泛型都會(huì)被替換為原來(lái)的原始類(lèi)型(Raw Type),并且會(huì)在相應(yīng)的地方插入強(qiáng)制轉(zhuǎn)型的代碼。這篇文章主要介紹了Java的類(lèi)型擦除式泛型,需要的朋友可以參考下
    2021-08-08
  • 基于Springboot+Vue實(shí)現(xiàn)的在線答題闖關(guān)系統(tǒng)全過(guò)程

    基于Springboot+Vue實(shí)現(xiàn)的在線答題闖關(guān)系統(tǒng)全過(guò)程

    這篇文章主要介紹了基于Springboot+Vue實(shí)現(xiàn)的在線答題闖關(guān)系統(tǒng)的相關(guān)資料,文中包括前端Vue.js、后端SpringBoot及MySQL數(shù)據(jù)庫(kù)的使用,系統(tǒng)功能涵蓋順序出題、體型練習(xí)、隨機(jī)出題、錯(cuò)題本、收藏題和答題統(tǒng)計(jì)等,需要的朋友可以參考下
    2024-12-12

最新評(píng)論

金溪县| 玉门市| 调兵山市| 手游| 铁力市| 花垣县| 留坝县| 正镶白旗| 虎林市| 阳泉市| 札达县| 石泉县| 会宁县| 观塘区| 育儿| 紫金县| 富源县| 得荣县| 兴山县| 白银市| 常山县| 松潘县| 吉安市| 曲周县| 商南县| 万全县| 资溪县| 涪陵区| 上虞市| 内江市| 当雄县| 横峰县| 吴川市| 海城市| 上栗县| 措勤县| 陵川县| 江都市| 织金县| 札达县| 重庆市|