亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

POI導出excel,合并單元格后沒有邊框

POI導出excel,合并單元格后沒有邊框

海綿寶寶撒 2019-03-13 18:15:44
使用poi導出excel的時候,合并單元格后沒有邊框我先寫了一個樣式        // 紅色加粗居中 樣式1        HSSFCellStyle style = workbook.createCellStyle();        style.setBorderBottom(HSSFCellStyle.BORDER_THIN);// 下邊框        style.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左邊框        style.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右邊框        style.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上邊框        style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);//水平居中        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中        style.setWrapText(true);          // 字體        HSSFFont font = workbook.createFont();        font.setColor(HSSFColor.RED.index);// 紅色字體        font.setFontName("宋體");        font.setFontHeightInPoints((short) 11);// 11號字體        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);// 粗體顯示        style.setFont(font);// 把字體應用到當前的樣式然后在下面的調用        sheet.addMergedRegion(new Region(0, (short) (0), 1, (short) (0)));        HSSFRow row = sheet.createRow(0);                HSSFCell cell = row.createCell(0);        cell.setCellType(HSSFCell.CELL_TYPE_STRING);// 定義單元格為字符串類型        cell.setCellStyle(style);// 設置使用樣式1        cell.setCellValue(new HSSFRichTextString("溫馨提示:"));出來的效果沒有邊框請問怎么解決啊
查看完整描述

2 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

導出的excel合并單元格有兩種方法:

第一種:


sheet.addMergedRegion(new CellRangeAddress(開始行, 結束行, 開始列, 結束列));

這樣就可以合并單元格


第二種:


sheet.addMergedRegion(new Region(r-1,(short)0,r,(short)0));

參數:

第一個:開始行

第二個:開始列

第三個:結束行

第四個:結束列


但是,這些合并后的單元格沒有邊框,如果使用平時的方法加:


style2.setBorderTop(HSSFCellStyle.BORDER_THIN);

style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);

style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);

style2.setBorderRight(HSSFCellStyle.BORDER_THIN);

這樣加出來的只有一個單元格有邊框,后面的沒有


所以要使用下面的方法:


寫一個方法


 @SuppressWarnings("deprecation")

 public static void setRegionStyle(HSSFSheet sheet, Region region, HSSFCellStyle cs) {

  for (int i = region.getRowFrom(); i <= region.getRowTo(); i++) {

   HSSFRow row = HSSFCellUtil.getRow(i, sheet);

   for (int j = region.getColumnFrom(); j <= region.getColumnTo(); j++) {

    HSSFCell cell = HSSFCellUtil.getCell(row, (short) j);

    cell.setCellStyle(cs);

   }

  }

 }

然后在單元格的最下面調用此方法


setRegionStyle(sheet,region1,style);

sheet是當前的sheet,region1是合并的,style是樣式注意樣式里面必須設置上下左右邊框


第一種合并是不能實現的。


查看完整回答
反對 回復 2019-04-19
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

SetEnclosedBorderOfRegion()


查看完整回答
反對 回復 2019-04-19
  • 2 回答
  • 0 關注
  • 2821 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號