java POI導出excel,合並單元格邊框消失


業務是導出一個報表,要求有一個跨多列的表頭,肯定要用到合並單元格,但合並后邊框消失。網上的一些解決辦法是重寫合並單元格方法,但弄清楚原因后,其實沒必要。

原來是這樣的:

合並后就第一個有邊框,其余全成空白了,上代碼:

 

HSSFCellStyle style = wb.createCellStyle(); 創建樣式
  style.setAlignment(HSSFCellStyle.ALIGN_RIGHT); //字體右對齊
  style.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下邊框
  style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左邊框
  style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上邊框
  style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右邊框
HSSFRow row = sheet.createRow(1);
HSSFCell cel = row.createCell(0);
  cel.setCellValue("編制人:" + "admin" + "         日期:" + sdf.format(new Date()));
  cel.setCellStyle(style);
  for (int j = 1; j <= 11; j++) {
    cel = row.createCell(j);
    cel.setCellStyle(style); //style為帶邊框的樣式 上面有定義
    cel.setCellValue("");
  }

運行后: 

哈哈!完美的解決了

分析:創建的行的的時候只row.createCell(0),當然只有第一列有邊框,其余沒邊框了,然后一合並,結果就顯而易見出現圖一的情況了。但要是創建等多的單元格,每個單元格都加上邊框,再合並就沒事了。

還是搞清原理比較好。還有一個根據單元格內容自適應高寬的問題,官方給的有問題,還沒解決。>_<

 


免責聲明!

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



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