poi java代码根据公共数据合并单元格

时间:2017-02-06 09:47:46

标签: java apache-poi

enter image description here

我在excel文件中有上述格式的数据,我想按如下方式编辑它:

enter image description here

我使用了以下代码:

public void editExcelTemplate() throws FileNotFoundException, IOException
    {       
        InputStream ExcelFileToRead = new FileInputStream("file.xls");
        XSSFWorkbook  wb = new XSSFWorkbook(ExcelFileToRead);
        XSSFSheet sheet = wb.getSheetAt(0);

        int rows = sheet.getPhysicalNumberOfRows();
        String cmp = "none";

        for(int i=0;i<rows;i++)
        {

            Row row = sheet.getRow(i);
            int col =row.getPhysicalNumberOfCells();
            int colIndex = 1;
            int v=0;
            for(int j=0;j<col;j++)
            {
                String content = row.getCell(j).getStringCellValue();

                if(!(content == cmp) && !(content.equals("none")))
                {
                    if(!(cmp.equals("none")))
                    {
                        System.out.println("content: "+content);
                        System.out.println("cmp: "+cmp);
                     v= j;
                     System.out.println("row : "+i+"colst : "+(colIndex)+"colend : "+v);
                    if(!( v-colIndex == 0) && v>0)
                    {
                    System.out.println("row : "+i+"colst : "+(colIndex)+"colend : "+v);
                    sheet.addMergedRegion(new CellRangeAddress(i,i,colIndex-1,v-1));
                    System.out.println("merged");

                    }
                    }
                }
                if(!(content == cmp))
                {
                    colIndex = v+1;
                }
                cmp = content;



            }


        }

        FileOutputStream excelOutputStream = new FileOutputStream(
                "file.xls");
        wb.write(excelOutputStream);
        excelOutputStream.close();

}

我最终获得了以下输出:

enter image description here

有人可以帮我获得合适的输出吗?主要目的是在整个过程中将单元格与公共数据合并。

0 个答案:

没有答案