一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - Java導出excel時合并同一列中相同內容的行思路詳解

Java導出excel時合并同一列中相同內容的行思路詳解

2021-05-08 10:35HPUCL Java教程

這篇文章主要介紹了Java導出excel時合并同一列中相同內容的行,需要的朋友可以參考下

一、有時候導出excel時需要按類別導出,一大類下好幾個小類,小類下又有好幾個小小類,就像下圖:

Java導出excel時合并同一列中相同內容的行思路詳解

要實現這個也不難,

思路如下:按照大類來循環,如上就是按照張江校區、徐匯校區、臨港校區三個大類循環,然后再處理小類,因為本例小小類不涉及合并,所以只涉及處理小類,如果需要處理小小類,還需要在處理一下,具體實現原理同小類;

      每次循環時記錄下此次循環的房屋類型和上次循環的房屋類型,兩者相同時,要合并的結束行++,否者,說明這個房屋類型已經循環完畢(前提是各類型都按順序order by 了,保證相同類型相鄰),開始融合。具體實現如下:

二、實現代碼,具體思路已經在注釋中了

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public void expstatistics(string filepath,string campuscode) {
   try {
     writableworkbook wwb = workbook.createworkbook(new file(filepath));
     jxlformatutil jfu = new jxlformatutil();
     writablesheet ws = wwb.createsheet("房屋報表統計", 0);
     string[] tablehead = {"校區名稱:20","房屋類型:30","房屋用途:30","使用面積(㎡):20"};
     for (int i = 0; i < tablehead.length; i++) {//每一列的標題樣式
       ws.addcell(new label(i, 0, tablehead[i].split(":")[0], jxlformatutil.wchead));
       ws.setcolumnview(i, integer.valueof(tablehead[i].split(":")[1]));
     }
     int col = 1;//從第1行開始
     //以下變量用來融合相同內容 的行
     int percol = col;
     string perpurpose = "";//上一個用途類型
     string purpose = "";//當前用途類型
     int startmergecol = 1;//要融合的第一行
     int endmergecol = 0;//要融合的最后行
     boolean flag = true;//用來記錄是否是第一次循環
     //根據搜索條件導出
     list<fcxtcampus> campuslist = new arraylist<fcxtcampus>();
     if(null != campuscode && !"".equals(campuscode)){
       campuslist = campusdao.findcampusbycode(campuscode);
     }else {
       campuslist =campusdao.findcampus();
     }
     for (fcxtcampus campus : campuslist) {
       list<fcxtbuild> builds = builddao.statisticsbuilds(campus.getcampuscode());//獲取所有房屋信息
       if(null != builds && builds.size() > 0){
         for (fcxtbuild build : builds) {
           int row = 0;//從第0列開始
           ws.addcell(new label(row++, col, campus.getcampusname(), jxlformatutil.wccenter));
           purpose = build.getusefulpurpose();
           if(flag){//如果是第一次循環,將perpurpose初始化,以便后面的第一次判斷
             perpurpose = purpose;
             flag = false;
           }
           ws.addcell(new label(row++, col, fcxtbuild.build_usefulpurpose.get(build.getusefulpurpose()), jxlformatutil.wccenter));
           if(purpose.equals(perpurpose)){
             endmergecol++;
           }else{//兩者不相同時,融合之前相同的行
             ws.mergecells(1, startmergecol, 1, endmergecol);
             startmergecol = col;
             endmergecol = startmergecol;
             perpurpose = purpose;
           }
           ws.addcell(new label(row++, col, fcxtbuild.build_buildingtype.get(build.getbuildingtype()), jxlformatutil.wccenter));
           ws.addcell(new label(row++, col, build.getbuildarea().tostring(), jxlformatutil.wccenter));
           col++;
         }
         ws.mergecells(0, percol, 0, col-1);
         percol = col;
       }
     }
     wwb.write();
     wwb.close();
   } catch (exception e) {
     e.printstacktrace();
   }
 }

總結

以上所述是小編給大家介紹的java導出excel時合并同一列中相同內容的行思路詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://www.cnblogs.com/hpuiotcl/archive/2018/06/07/9150229.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 特黄特级毛片免费视 | 欧美一级在线播放 | jiuse在线 | 2019年国产高清情侣视频 | 国产精品久久现线拍久青草 | 国色天香社区在线视频免费观看 | 国产美女极品免费视频 | 麻豆婷婷 | 亚洲国产高清视频 | 桃乃木香奈作品在线观看 | 91啦中文在线观看 | 二次元美女内裤凹陷太深 | 国产精品一区二区在线观看完整版 | 青青青在线视频 | japanesexxxx在线播放 | 3d蒂法精品啪啪一区二区免费 | 91久久99热青草国产 | 免看一级a一片成人123 | 齐天大性之七仙女欲春迅雷链接 | 日韩伦理在线看 | 古代翁熄系小说辣文 | 成人观看免费大片在线观看 | 韩国www | 99久久免费看国产精品 | juy799大岛优香在线观看 | 国产亚洲精品一区二区在线观看 | 免费观看在线观看 | 亚洲国产欧美在线人成aaa | 插鸡网站 | 日韩欧美综合在线二区三区 | 激情婷婷成人亚洲综合 | 国产永久一区二区三区 | 欧美透逼视频 | 999热在线精品观看全部 | 息与子中文字幕完整在线 | 韩国三级年轻小的胰子完整 | 2021国产麻豆剧传媒剧情最新 | bestialitysex杂交 bedfriend泰剧全集免费观看 | 国产首页精品 | 男人把j放进女人的p里视频 | 91精品国产亚一区二区三区 |