java - org - Agregar bordes a las celdas en archivos de Excel generados con POI
cellstyle background color java (6)
XSSF
Estilo de borde
Use XSSFCellStyle
o XSSFBorderFormatting
(ambas enumeraciones hacen referencia al mismo valor).
XSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setBorderBottom(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderTop(XSSFBorderFormatting.BORDER_MEDIUM);
Color del borde
Use setBorderColor(BorderSide, XSSFColor)
o setBottomBorderColor(XSSFColor)
(equivalente para arriba, izquierda, derecha).
XSSFCellStyle cellStyle = workbook.createCellStyle();
XSSFColor color = new XSSFColor(new java.awt.Color(128, 0, 128));
cellStyle.setBorderColor(XSSFCellBorder.BorderSide.BOTTOM, color);
cellStyle.setBottomBorderColor(color);
Estoy usando POI para generar un archivo de Excel. Necesito agregar bordes a celdas específicas en la hoja de trabajo.
¿Cómo puedo lograr esto?
En las versiones más nuevas de apache poi:
XSSFCellStyle style = workbook.createCellStyle();
style.setBorderTop(BorderStyle.MEDIUM);
style.setBorderBottom(BorderStyle.MEDIUM);
style.setBorderLeft(BorderStyle.MEDIUM);
style.setBorderRight(BorderStyle.MEDIUM);
Establecer bordes en el estilo utilizado en las celdas lo logrará. Ejemplo:
style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
Para crear un borde en Apache POI, debe ...
1: Crea un estilo
final XSSFCellStyle style = workbook.createCellStyle();
2: Entonces tienes que crear el borde
style.setBorderBottom( new XSSFColor(new Color(235,235,235));
3: Entonces tienes que establecer el color de ese borde
style.setBottomBorderColor( new XSSFColor(new Color(235,235,235));
4: luego aplica el estilo a una celda
cell.setCellStyle(style);
una función de Ayudante:
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);
}
Cuando desee agregar un borde en Excel, entonces
String cellAddr="$A$11:$A$17";
setRegionBorderWithMedium(CellRangeAddress.valueOf(cellAddr1), sheet);
HSSFCellStyle style=workbook.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);