excle复制sheet页

public static Sheet copySheet(Workbook create, Sheet oldSheet){
        //工作簿中创建新的sheet页  延用sheet模板中的sheet名
        Sheet newSheet = create.createSheet(oldSheet.getSheetName());
        //sheet模板中的合并单元格信息
        List mergedRegions = oldSheet.getMergedRegions();
        //sheet模板中的数据验证信息  下拉框  序列
        List validations = oldSheet.getDataValidations();
        //新的sheet页中添加数据验证信息
        if(null != validations && validations.size() > 0){
            for(DataValidation validation : validations){
                newSheet.addValidationData(validation);
            }
        }
        //新的sheet页中添加合并单元格信息
        if(null != mergedRegions && mergedRegions.size() > 0){
            for(CellRangeAddress rangeAddress : mergedRegions){
                newSheet.addMergedRegion(rangeAddress);
            }
        }
        //获取sheet中row的迭代器
        Iterator iterator = oldSheet.iterator();
        while (iterator.hasNext()){
            //获取row信息
            Row row = iterator.next();
            //设置当前行的行宽
            newSheet.setColumnWidth(row.getRowNum(),oldSheet.getColumnWidth(row.getRowNum()));
            //创建新的row
            Row newRow = newSheet.createRow(row.getRowNum());
            //设置新row的高度
            newRow.setHeight(row.getHeight());
            //获取单元格的迭代器
            Iterator cellIterator = row.cellIterator();
            while (cellIterator.hasNext()){
                //获取单元格信息
                Cell cell = cellIterator.next();
                //创建新的单元格
                Cell newCell = newRow.createCell(cell.getColumnIndex());
                //创建单元格样式
                CellStyle cellStyle = create.createCellStyle();
                //复制单元格样式
                cellStyle.cloneStyleFrom(cell.getCellStyle());
                //设置新的单元格样式
                newCell.setCellStyle(cellStyle);
                //设置新的单元格值
                newCell.setCellValue(cell.getRichStringCellValue());
                //设置注释
                newCell.setCellComment(cell.getCellComment());
            }
        }

        return newSheet;
    }

你可能感兴趣的:(excle复制sheet页)