POI合並單元格並填入數據


利用POI合並單元格其實也是一個很簡單的事情,就兩行代碼

CellRangeAddress region = new CellRangeAddress(firstRow, lastRow, firstCol, lastCol); //初始行,終止行,初始列,終止列
sheet.addMergedRegion(region);

合並單元格並不需要什么,只需要你指定工作表sheet。然后CellRangeAddress()方法的四個參數分別是合並的初始行,終止行,初始列,終止列。而且合並單元格的時候,合並后的單元格里面的內容只會保存左上角的第一個單元格的內容。

下面我舉個栗子,相信你們就會懂了。

String path = "D:\\test0808\\";
        //1.創建工作簿
        Workbook workbook = new HSSFWorkbook();
        //2.創建一個工作表
        Sheet sheet = workbook.createSheet("博客園測試");
        //3.創建一行
        Row row1 = sheet.createRow(0);
        //4.創建兩個個單元格
        Cell cell = row1.createCell(0);
        Cell cell2 = row1.createCell(1);
        cell.setCellValue("第一個單元格");
        cell2.setCellValue("第二個單元格");
        
        FileOutputStream fileOutputStream = new FileOutputStream(path + "在家測試0802.xls");
       // fileOutputStream.flush();
        workbook.write(fileOutputStream);
        fileOutputStream.flush();
        fileOutputStream.close();
        System.out.println("測試成功");
}

創建的Excel文件如下

 

 

如果我對兩個單元格進行合並,那么內容只會保留“第一個單元格”字樣。

 

需要注意的是,合並單元格指定的總單元格必須大於一。也就是初始行,終止行和行差必須大於一,當初始列,終止列是用一列時。相反,初始列,終止列的列差必須大於一,當初始行,終止行是同一行時。但是有些版本就可以支持合並一個單元格,因為我在公司用的版本跟我在家的不一樣,我家里的版本就能夠支持合並單個單元格,這里小編就不多舉例了,大家用的時候看報錯信息就能夠知道了。

這里做一個補充,像小編我在工作的時候就遇到一個問題,我合並單元格之后需要將數據填入信息,這時正如同上面說到的,“合並后的單元格里面的內容只會保存左上角的第一個單元格的內容”,所以我們填數據時,就應該將數據填到第一個單元格。此時我們需要用到getRow()和getCell()方法拿到第一個單元格,並寫入數據.但是getCell和getRow()如果當單元格和row不存在時,會報空指針異常,所以我們一般用createCell()代替getCell().此時也是需要用sheet(工作表)才能調用getRow()方法.sheet.getRow(firstRow);

//拿到單元格,把數值放到第一列
Row mergeRow = sheet.getRow(firstRow);
Cell mergeCell = mergeRow.createCell(writeSumCol);
mergeCell.setCellValue(sumRent);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM