easyPoi自定義代碼導(dǎo)出報(bào)表

一、問(wèn)題

image.png

這種循捺,表頭是兩行構(gòu)成一行是一個(gè)單元格斩例,一行是兩個(gè)單元格,并且單元格是不確定的从橘,會(huì)動(dòng)態(tài)增加的念赶,有得力,有京東恰力,小米叉谜,華為.......。想要圖快踩萎,使用easyPoi的模版導(dǎo)出停局,好像是不太現(xiàn)實(shí),只好用寫(xiě)代碼的方式來(lái)操作香府。但是也不是完全憑自己的方式來(lái)董栽。用easyPoi帶的一些方法來(lái)操作。

二企孩、寫(xiě)代碼


    public static void testPoi2() {
        try {
            //裝很多表頭的集合
            List<ExcelExportEntity> colList = new ArrayList<>();
            //一個(gè)表頭
            ExcelExportEntity colEntity = new ExcelExportEntity("商品名稱", "title");
            //對(duì)比上面的那個(gè)圖片來(lái)說(shuō)锭碳,就是[供應(yīng)商0]可以對(duì)應(yīng)后面的三個(gè)[得力.市場(chǎng)價(jià)] 供應(yīng)商0合并為一個(gè)單元格的意思
            colEntity.setNeedMerge(true);
            colList.add(colEntity);

            colEntity = new ExcelExportEntity("供應(yīng)商", "supplier");
            colEntity.setNeedMerge(true);
            colList.add(colEntity);
          
            //一個(gè)單元格組
            ExcelExportEntity deliColGroup = new ExcelExportEntity("得力", "deli");
            List<ExcelExportEntity> deliColList = new ArrayList<>();
            //得力下面掛兩個(gè)小單元格
            deliColList.add(new ExcelExportEntity("市場(chǎng)價(jià)", "orgPrice"));
            deliColList.add(new ExcelExportEntity("專區(qū)價(jià)", "salePrice"));
            deliColGroup.setList(deliColList);
            //放入表頭集合
            colList.add(deliColGroup);

            ExcelExportEntity jdColGroup = new ExcelExportEntity("京東", "jd");
            List<ExcelExportEntity> jdColList = new ArrayList<ExcelExportEntity>();
            jdColList.add(new ExcelExportEntity("市場(chǎng)價(jià)", "orgPrice"));
            jdColList.add(new ExcelExportEntity("專區(qū)價(jià)", "salePrice"));
            jdColGroup.setList(jdColList);
            colList.add(jdColGroup);

            //裝很多行數(shù)據(jù)的集合  一個(gè)MAP代表一行數(shù)據(jù)
            List<Map<String, Object>> list = new ArrayList<>();
            for (int i = 0; i < 10; i++) {
                //一行數(shù)據(jù)
                Map<String, Object> valMap = new HashMap<>();
                valMap.put("title", "名稱." + i);
                valMap.put("supplier", "供應(yīng)商." + i);

                List<Map<String, Object>> deliDetailList = new ArrayList<>();
                for (int j = 0; j < 3; j++) {
                    //一行
                    Map<String, Object> deliValMap = new HashMap<>();
                    deliValMap.put("orgPrice", "得力.市場(chǎng)價(jià).");
                    deliValMap.put("salePrice", "得力.專區(qū)價(jià).");
                    deliDetailList.add(deliValMap);
                }
               //deli字段是一個(gè)單元格組合
                valMap.put("deli", deliDetailList);

                List<Map<String, Object>> jdDetailList = new ArrayList<>();
                for (int j = 0; j < 2; j++) {
                    Map<String, Object> jdValMap = new HashMap<>();
                    jdValMap.put("orgPrice", "京東.市場(chǎng)價(jià).");
                    jdValMap.put("salePrice", "京東.專區(qū)價(jià).");
                    jdDetailList.add(jdValMap);
                }
                valMap.put("jd", jdDetailList);

                list.add(valMap);
            }
            System.out.println(JSON.toJSONString(list));
            ExportParams entity = new ExportParams("價(jià)格分析表", "數(shù)據(jù)");
            Workbook workbook = ExcelExportUtil.exportExcel(entity, colList,
                    list);
            FileOutputStream fos = new FileOutputStream("/Users/woods/testpoi/價(jià)格分析表.xls");
            workbook.write(fos);
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

三、總結(jié)

如上面代碼所示勿璃,導(dǎo)出來(lái)的數(shù)據(jù)就和本文的那張圖片一樣擒抛,表頭比較復(fù)雜的情況下,可以考慮使用這種方式導(dǎo)出

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末补疑,一起剝皮案震驚了整個(gè)濱河市闻葵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌癣丧,老刑警劉巖槽畔,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異胁编,居然都是意外死亡厢钧,警方通過(guò)查閱死者的電腦和手機(jī)鳞尔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)早直,“玉大人寥假,你說(shuō)我怎么就攤上這事∠佳铮” “怎么了糕韧?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)喻圃。 經(jīng)常有香客問(wèn)我萤彩,道長(zhǎng),這世上最難降的妖魔是什么斧拍? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任雀扶,我火速辦了婚禮,結(jié)果婚禮上肆汹,老公的妹妹穿的比我還像新娘愚墓。我一直安慰自己,他們只是感情好昂勉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布浪册。 她就那樣靜靜地躺著,像睡著了一般岗照。 火紅的嫁衣襯著肌膚如雪村象。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天谴返,我揣著相機(jī)與錄音,去河邊找鬼咧织。 笑死嗓袱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的习绢。 我是一名探鬼主播渠抹,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼闪萄!你這毒婦竟也來(lái)了梧却?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤败去,失蹤者是張志新(化名)和其女友劉穎放航,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體圆裕,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡广鳍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年荆几,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赊时。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吨铸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出祖秒,到底是詐尸還是另有隱情诞吱,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布竭缝,位于F島的核電站房维,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏歌馍。R本人自食惡果不足惜握巢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望松却。 院中可真熱鬧暴浦,春花似錦、人聲如沸晓锻。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)砚哆。三九已至独撇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間躁锁,已是汗流浹背纷铣。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留战转,地道東北人搜立。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像槐秧,于是被迫代替她去往敵國(guó)和親啄踊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容