Java使用POI对Excel进行基本操作(3)-合并单元格


1、使用poi合并单元格

    public static void main(String[] args) throws Exception {
        // 定义一个工作簿
        Workbook workbook = new XSSFWorkbook();
        // 创建一个sheet页
        Sheet sheet = workbook.createSheet("第一个sheet页");
        // 创建一个行
        Row row = sheet.createRow(0);
        // 创建单元格
        row.createCell(0).setCellValue("测试内容");
        row.createCell(1).setCellValue("测试内容2");
        // 合并单元格,合并后的内容取决于合并区域的左上角单元格的值
        CellRangeAddress region = new CellRangeAddress(0,3,0,3);
        sheet.addMergedRegion(region);

        FileOutputStream fileOutputStream = new FileOutputStream("D:\\用poi测试合并单元格.xlsx");
        workbook.write(fileOutputStream);
        fileOutputStream.close();
    }

 合并结果如图:

 

 

2、为合并后的单元格添加边框线

(注意:合并后的单元格会保留原先合并区域左上单元格的居中样式,但是不会保留原先单元格的边框线,所以合并单元格之后,需要重新为合并后的单元格添加边框线)

    /**
     * 为合并后的单元格添加边框线
     * @param cra 合并区域
     * @param sheet sheet
     */
    private static void addMergeCellBorder(CellRangeAddress cra, Sheet sheet) {
        RegionUtil.setBorderTop(BorderStyle.THIN,cra,sheet);
        RegionUtil.setBorderBottom(BorderStyle.THIN,cra,sheet);
        RegionUtil.setBorderLeft(BorderStyle.THIN,cra,sheet);
        RegionUtil.setBorderRight(BorderStyle.THIN,cra,sheet);
    }

    public static void main(String[] args) throws Exception {
        // 定义一个工作簿
        Workbook workbook = new XSSFWorkbook();
        // 创建一个sheet页
        Sheet sheet = workbook.createSheet("第一个sheet页");
        // 创建一个行
        Row row = sheet.createRow(0);
        // 创建单元格
        row.createCell(0).setCellValue("测试内容");
        row.createCell(1).setCellValue("测试内容2");
        // 合并单元格,合并后的内容取决于合并区域的左上角单元格的值
        CellRangeAddress region = new CellRangeAddress(0,3,0,3);
        sheet.addMergedRegion(region);
        // 为合并后的单元格添加边框线
 addMergeCellBorder(region, sheet);

        FileOutputStream fileOutputStream = new FileOutputStream("D:\\用poi测试合并单元格2.xlsx");
        workbook.write(fileOutputStream);
        fileOutputStream.close();
    }

 

结果如图:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM