POI插入行,合并行的单元格

1、POI插入行,合并行的单元格

2、代码

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
/**
      *
      * @Title: insertRow
      * @Description: TODO 插入行
      * @param sheet
      * @param insertRowIndex
      * @Author:wushigao
      * @CreateDate:2022 Mar 17 14:06:05
      */
     public static Row insertRow(Sheet sheet,int insertRowIndex) {
         if (insertRowIndex <= sheet.getLastRowNum()) {
             sheet.shiftRows(insertRowIndex, sheet.getLastRowNum(), 1);
         }
         int tempRowIndex = insertRowIndex-1;
         Row rowTemplate = sheet.getRow(tempRowIndex);
         int cellNum = rowTemplate.getLastCellNum() - rowTemplate.getFirstCellNum();
         Row insertRow = sheet.createRow(insertRowIndex);
         for(int cellIndex=0;cellIndex<cellNum;cellIndex++){
             insertRow.createCell(cellIndex);
         }
         POIUtils.copyCellStyleToRow(rowTemplate,insertRow);
         int count = sheet.getNumMergedRegions();
         if(count > 0) {
             for(int index = 0;index<count;index++) {
                 CellRangeAddress cellRangeAddress = sheet.getMergedRegion(index);
                 int firstRow = cellRangeAddress.getFirstRow();
                 if(firstRow == tempRowIndex) {
                     CellRangeAddress region = new CellRangeAddress(insertRowIndex, insertRowIndex, cellRangeAddress.getFirstColumn(), cellRangeAddress.getLastColumn()); //起始行,结束行,起始列,结束列
                     sheet.addMergedRegion(region);
                 }
             }
         }
         return insertRow;
     }

  3、复制合并单元格方法

1
2
3
4
5
6
7
8
9
10
11
int count = sheet.getNumMergedRegions();
         if(count > 0) {
             for(int index = 0;index<count;index++) {
                 CellRangeAddress cellRangeAddress = sheet.getMergedRegion(index);
                 int firstRow = cellRangeAddress.getFirstRow();
                 if(firstRow == tempRowIndex) {
                     CellRangeAddress region = new CellRangeAddress(insertRowIndex, insertRowIndex, cellRangeAddress.getFirstColumn(), cellRangeAddress.getLastColumn()); //起始行,结束行,起始列,结束列
                     sheet.addMergedRegion(region);
                 }
             }
         }

  

posted @   信铁寒胜  阅读(1059)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-12-02 Eclipse的知识积累
点击右上角即可分享
微信分享提示