通过poi3.15 获取excel 指定sheet页的信息 并将其按照分页符分割为新的sheet页

和之前的类似 但是换成通过分页符切割了

   public void setSheetForPrint(Workbook workbook)throws Exception{
        /**
         * 处理顺序:
         * 1 确定现有页数,并保存 以待用于删除
         * 2 巡查工作簿1 获取终结列数、分割次数 终结行数
         * 3 巡查工作簿1 并将其内容进行分割复制
         * 4 用第1步保存的页序号进行删除
         */

        /*1 确定现有页数,并保存 以待用于删除*/
        Integer[] deleteSheetIndexArr = new Integer[workbook.getNumberOfSheets()];
        // 保存页数
        int deleteSheetIndexArrIndex = 0;
        for (Sheet sheet : workbook){
            int sheetIndex = workbook.getSheetIndex(sheet);
            deleteSheetIndexArr[deleteSheetIndexArrIndex] = sheetIndex;
            deleteSheetIndexArrIndex++;
        }
        /*2 巡查工作簿1 获取终结列数和分割次数*/
        // 获取工作簿
        Sheet sheet = workbook.getSheetAt(0);
        //设置关键字 变量 并巡查工作簿
        String keyWordLastRow = "The Below is Blank";
        String keyWordLastRow2 = "以下空白";
        int[] rowBreaks = sheet.getRowBreaks(); //获取分页符 依照分页符进行分页
        //设置变量
        int lastColumn = 33; //最后一列
        int newSheetNum = rowBreaks.length; //新增页数
        int lastRowNum = sheet.getLastRowNum(); // 最后一行
        //开始巡查工作簿

        for (Row row : sheet){
            // 查找关键字
            // 如果检测到最后一行的标记 则跳出循环
            for (Cell cellT :row ){
                if (PoiExcelUtils.getCellValue(cellT).contains(keyWordLastRow)){
                    lastRowNum = row.getRowNum() +1;
                    break;
                }
            }
        }
        /*3 巡查工作簿1 并将其内容进行分割复制*/
        // 首先获取合并单元格信息
        Map<Integer,List<Integer[]>> mergedDic = new HashMap<>();   // 单元格合并字典
        for (int i = 0; i < sheet.getNumMergedRegions(); i++) {
            CellRangeAddress mergedRegion = sheet.getMergedRegion(i);

            Integer firstRow = mergedRegion.getFirstRow();
            Integer lastRow = mergedRegion.getLastRow();
            Integer firstColumn = mergedRegion.getFirstColumn();
            Integer Las
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值