我正在使用POI生成Excel文件,需要在工作表中的特定单元格添加边框。如何实现这个功能?
使用单元格中使用的样式来设置边框就可以实现这一点。 示例:
style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
XSSFCellStyle style = workbook.createCellStyle();
style.setBorderTop(BorderStyle.MEDIUM);
style.setBorderBottom(BorderStyle.MEDIUM);
style.setBorderLeft(BorderStyle.MEDIUM);
style.setBorderRight(BorderStyle.MEDIUM);
HSSFCellStyle style=workbook.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
使用 XSSFCellStyle.BORDER_MEDIUM
或 XSSFBorderFormatting.BORDER_MEDIUM
(这两个枚举类型指的是同一个值):
final XSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setBorderTop(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderRight(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderBottom(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderLeft(XSSFCellStyle.BORDER_MEDIUM);
cell.setCellStyle(cellStyle);
使用setBorderColor(XSSFCellBorder.BorderSide.BOTTOM, XSSFColor)
或setBottomBorderColor(XSSFColor)
(顶部、左侧、右侧同样适用):
final XSSFCellStyle cellStyle = workbook.createCellStyle();
final XSSFColor color = new XSSFColor(new java.awt.Color(128, 0, 128));
cellStyle.setTopBorderColor(color);
cellStyle.setRightBorderColor(color);
cellStyle.setBottomBorderColor(color);
cellStyle.setLeftBorderColor(color);
cell.setCellStyle(cellStyle);
一个辅助函数:
private void setRegionBorderWithMedium(CellRangeAddress region, Sheet sheet) {
Workbook wb = sheet.getWorkbook();
RegionUtil.setBorderBottom(CellStyle.BORDER_MEDIUM, region, sheet, wb);
RegionUtil.setBorderLeft(CellStyle.BORDER_MEDIUM, region, sheet, wb);
RegionUtil.setBorderRight(CellStyle.BORDER_MEDIUM, region, sheet, wb);
RegionUtil.setBorderTop(CellStyle.BORDER_MEDIUM, region, sheet, wb);
}
当您想在Excel中添加边框时,那么
String cellAddr="$A$11:$A$17";
setRegionBorderWithMedium(CellRangeAddress.valueOf(cellAddr1), sheet);
如果你正在使用 org.apache.poi.ss.usermodel(而不是HSSF或XSSF),你可以使用:
style.setBorderBottom(BorderStyle.THIN);
style.setBorderTop(BorderStyle.THIN);
style.setBorderLeft(BorderStyle.THIN);
style.setBorderRight(BorderStyle.THIN);
从版本4.0.0开始,RegionUtil
方法具有新的签名。例如:
RegionUtil.setBorderBottom(BorderStyle.DOUBLE,
CellRangeAddress.valueOf("A1:B7"), sheet);
final XSSFCellStyle style = workbook.createCellStyle();
2:然后您需要创建边框
style.setBorderBottom( new XSSFColor(new Color(235,235,235));
3: 然后你需要设置该边框的颜色
style.setBottomBorderColor( new XSSFColor(new Color(235,235,235));
4:然后将样式应用到单元格中
cell.setCellStyle(style);