POI导出Excel将相同的列合并行

public static void mergeCell(List<QsggDTO> list, Sheet sheet, int[] index){
        int id1 = 0;
        int id2 = 0;

        int firstRow = 2;
        int lastRow = 2;

        QsggDTO qsggDTO = list.get(0);
        id1 = qsggDTO.getId();

        for (int i = 1; i < list.size(); i++) {
            qsggDTO = list.get(i);
            id2 = qsggDTO.getId();

            if(id1==id2){
                lastRow = i+2;
            }else {
                if(firstRow < lastRow){
                    for(int c:index){
                        sheet.addMergedRegion(new CellRangeAddress(firstRow,lastRow,c,c));
                    }
                }

                id1 = id2;
                firstRow = lastRow + 1;

                lastRow = firstRow;
            }

            if((i+1)==list.size()){
                if(firstRow < lastRow){
                    for(int c:index){
                        sheet.addMergedRegion(new CellRangeAddress(firstRow,lastRow,c,c));
                    }
                }
            }
        }
    }

 

调用:

mergeCell(list, sheet, new int[]{0,1,2});

参数

new int[]{0,1,2}

表示合并第1,2,3列。

 

posted @ 2021-12-02 08:10  yshy  阅读(536)  评论(0编辑  收藏  举报