首页 > 学院 > 开发设计 > 正文

POI导出Excel合并单元格时的边框问题

2019-11-08 01:32:18
字体:
来源:转载
供稿:网友

Excel中合并了单元格,仅使用的是下面的代码

CellRangeAddress cra = new CellRangeAddress(0, 0, 0, (rowName.length-1)); sheet.addMergedRegion(cra);

可以顺利地合并指定区域的单元格,但是其边框却无法显示完全,采用poi中的RegionUtil类可以成功解决:

/** * @param border 边框宽度 * @param region 合并单元格区域范围 * @param sheet * @param wb */ public static void setRegionBorder(int border, CellRangeAddress region, Sheet sheet,Workbook wb){ RegionUtil.setBorderBottom(border,region, sheet, wb); RegionUtil.setBorderLeft(border,region, sheet, wb); RegionUtil.setBorderRight(border,region, sheet, wb); RegionUtil.setBorderTop(border,region, sheet, wb); }

这里是局部的调用示例:

//表格标题行 HSSFCellStyle style0 = getStyle(wb, "宋体", 24, HSSFFont.BOLDWEIGHT_BOLD, HSSFCellStyle.ALIGN_CENTER, HSSFCellStyle.VERTICAL_CENTER); HSSFRow rowm0 = sheet.createRow(0); rowm0.setHeightInPoints(76);//设置行的高度是50个点 HSSFCell cellTiltle = rowm0.createCell(0); cra = new CellRangeAddress(0, 0, 0, (rowName.length-1)); sheet.addMergedRegion(cra); setRegionBorder(1, cra, sheet, wb);//合并单元格并设置边框 cellTiltle.setCellValue(title); cellTiltle.setCellStyle(style0); /** * 数据信息单元格样式 * @param workbook * @param fontName * @param fontSize * @param fontWeight * @param horAlignment * @param verAlignment * @return */ public static HSSFCellStyle getStyle(HSSFWorkbook workbook,String fontName,int fontSize,int fontWeight,int horAlignment,int verAlignment) { // 设置字体 HSSFFont font = workbook.createFont(); //设置字体大小 font.setFontHeightInPoints((short)fontSize); //字体加粗 font.setBoldweight((short) fontWeight); //设置字体名字 font.setFontName(fontName); //设置样式; HSSFCellStyle style = workbook.createCellStyle(); //设置底边框; style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //设置底边框颜色; style.setBottomBorderColor(HSSFColor.BLACK.index); //设置左边框; style.setBorderLeft(HSSFCellStyle.BORDER_THIN); //设置左边框颜色; style.setLeftBorderColor(HSSFColor.BLACK.index); //设置右边框; style.setBorderRight(HSSFCellStyle.BORDER_THIN); //设置右边框颜色; style.setRightBorderColor(HSSFColor.BLACK.index); //设置顶边框; style.setBorderTop(HSSFCellStyle.BORDER_THIN); //设置顶边框颜色; style.setTopBorderColor(HSSFColor.BLACK.index); //在样式用应用设置的字体; style.setFont(font); //设置自动换行; style.setWrapText(true); //设置水平对齐的样式为居中对齐; style.setAlignment((short) horAlignment); //设置垂直对齐的样式为居中对齐; style.setVerticalAlignment((short) verAlignment); return style; }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表