apache poi 合並單元格 設置邊框


HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet = wb.createSheet();

//創建一個樣式

HSSFCellStyle styleBorderThin= wb.createCellStyle();

setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下邊框
setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框
setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框
setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框



HSSFRow row=sheet.createRow(2);   //第三行

sheet.addMergedRegion(new CellRangeAddress(
2, //first row (0-based)
2, //last row (0-based)
1, //first column (0-based)
5 //last column (0-based)
));                                                  //第三行的 第2列到第6列(即B到F)  合並單元格

row.createCell(1).setCellValue("答案選項"); //賦值
row.createCell(2);
row.createCell(3);
row.createCell(4);
row.createCell(5);
row.createCell(6).setCellValue("回復情況");
for (Cell cell : row) {
cell.setCellStyle(styleBorderThin);
}

 

 

這里需要解釋的是 因為1-6是合並單元格,值取的是第一個單元格的值,所以后面的單元格賦不賦值都無所謂,但是一定要createCell,

row.createCell(2);
row.createCell(3);
row.createCell(4);
row.createCell(5);  這一些並不是沒意義的,如果去掉的話

錯誤結果就是這樣的:

加上了2-5的createCell以后的正確結果:

 

另外,我發現了一個有趣的地方,excel在操作合並單元格的時候,如果除了被合並的首個單元格以外的其他單元格也有值,會提示

 

 

確定合並單元格之后,再把合並單元格去掉,那些值會被清空。

但是如果你是通過POI 來進行合並單元格操作的,上面代為改為

row.createCell(2).setCellValue("222");
row.createCell(3).setCellValue("333");
row.createCell(4).setCellValue("444");
row.createCell(5).setCellValue("555"); 

導出excel之后,你去掉合並單元格,會發現 這些值還會保留着,如圖:


免責聲明!

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



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