usermodel poi org color cellstyle java excel border apache-poi

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);