我是靠谱客的博主 儒雅大山,最近开发中收集的这篇文章主要介绍使用java实现合并Excel表格中指定列中相同的行,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

                **使用java实现合并Excel表格中指定列中相同的行**

1、话不多说,先上代码

    public static void main(String[] args) throws IOException, 
    InvalidFormatException {
    File file=new File("C:\Users\MrYan\Desktop\测试.xlsx");
    Workbook workbook=WorkbookFactory.create(new FileInputStream(file));
    Sheet sheet=workbook.getSheetAt(0);
    int rows=getActualRowNum(sheet);
    //合并起始行初始单元格内容
    String firstValue=sheet.getRow(0).getCell(0).getStringCellValue();
    //合并起始行初始值
    int firstRow=0;
    int num=1;
    for(int i=0;i<rows;i++){
        Row row=sheet.getRow(i);
        Cell cell=row.getCell(0);
        if(!cell.getStringCellValue().equals(firstValue)){
           
    //单元格不相同时进行合并
    //例如从第0行开始得到一个初始值,然后读取到第十行时内容变了,那么合并的截至行就是第十行减去一行,就是从第0行合并至第九行
    sheet.addMergedRegion(new CellRangeAddress(firstRow, i-1, 0, 0));
    System.err.println("第"+num+"次合并,从第"+firstRow+"至第"+(i-1)+"行");
    //单元格内容不相同时重新赋值合同单元格的初始内容
    firstValue=cell.getStringCellValue();
    //单元格内容不相同时重新赋值合并的初始行
    firstRow=i;
    num++;
        }
    }
   
    //在合并最后一组相同的单元格内容时由于读取到最大行也没有出现不相同的单元格内容,所有需要再此处进行合并一下最后一组相同的单元格
    //起始行就是上一组的截至行,而截至行就是读取到的行数减去1(因为下标从0开始)   
    sheet.addMergedRegion(new CellRangeAddress(firstRow, rows-1, 0, 0));
    System.err.println("最后一次合并,从第"+firstRow+"至第"+(rows-1)+"行");
    FileOutputStream fileOutputStream=new FileOutputStream(file);
    workbook.write(fileOutputStream);
    fileOutputStream.close();
}

2、新建个测试的Excel并填入测试内容
在这里插入图片描述
3、执行结果
在这里插入图片描述
在这里插入图片描述

最后

以上就是儒雅大山为你收集整理的使用java实现合并Excel表格中指定列中相同的行的全部内容,希望文章能够帮你解决使用java实现合并Excel表格中指定列中相同的行所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部