解決poi合並單元格之后邊框缺失的解決辦法


1.修改創建行代碼:

//HSSFRow newrow = mSheet.createRow(wornum);
HSSFRow newrow = mSheet.getRow(wornum);
if (newrow == null) {
newrow = mSheet.createRow(wornum);
}
2.在合並單元格之后對樣式進行重新設置:
//設置行合並
cellRange = new CellRangeAddress(0, 0, (headPointCellindex - 3), headPointCellindex - 1);
mSheet.addMergedRegion(cellRange);
setBorderStyle(1, cellRange, mSheet, mWorkBook); //給合並過的單元格加邊框
3,樣式設置
private static void setBorderStyle(int border, CellRangeAddress region, HSSFSheet sheet, HSSFWorkbook wb) {
HSSFCellStyle cs = wb.createCellStyle(); // 樣式對象 
cs.setAlignment(org.apache.poi.ss.usermodel.HorizontalAlignment.CENTER);
cs.setVerticalAlignment(VerticalAlignment.CENTER);
cs.setBorderBottom(BorderStyle.valueOf((short) border));
cs.setBorderTop(BorderStyle.valueOf((short) border));
cs.setBorderLeft(BorderStyle.valueOf((short) border));
cs.setBorderRight(BorderStyle.valueOf((short) border));
setRegionStyle(cs, region, sheet);
}

private static void setRegionStyle(HSSFCellStyle cs, CellRangeAddress region, HSSFSheet sheet) {
for (int i = region.getFirstRow(); i <= region.getLastRow(); i++) {
HSSFRow row = sheet.getRow(i);
if (row == null) row = sheet.createRow(i);
for (int j = region.getFirstColumn(); j <= region.getLastColumn(); j++) {
HSSFCell cell = row.getCell(j);
if (cell == null) {
cell = row.createCell(j);
cell.setCellValue("");
}
cell.setCellStyle(cs);
}
}
}


免責聲明!

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



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