java - librería - El color de primer plano para HSSFCellStyle siempre sale negro
hssfworkbook java download (2)
Si está configurando el color de primer plano, use
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
Si está configurando el color de fondo, use
style.setFillPattern(FillPatternType.THICK_BACKWARD_DIAG);
o
style.setFillPattern(FillPatternType.THIN_BACKWARD_DIAG);
Los colores de primer plano y de fondo parecen ''apilarse'' (rojo + azul = púrpura) si establece el patrón de relleno en primer plano antes del patrón de relleno de fondo, pero no al revés. Hay muchos otros patrones de relleno entre los que puede elegir. Tenga en cuenta que el color no se aplicará si no cambia el patrón de relleno predeterminado.
CellStyle.SOLID_FOREGROUND
está en desuso en la versión 3.15+. Use FillPatternType.SOLID_FOREGROUND
en FillPatternType.SOLID_FOREGROUND
lugar.
Estoy utilizando POI para crear una hoja de cálculo de Excel en Java. Tengo el siguiente código utilizado para crear una fila de encabezado:
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Report");
// some more code
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(cellNumber);
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
HSSFFont font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setColor(HSSFColor.WHITE.index);
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);
El problema que estoy teniendo es que establecer el color de fondo de relleno en la celda siempre sale en negro, sin importar el color que elija. ¿Qué estoy haciendo mal? Si no uso la línea "setFillPattern", no aparece ningún color.
Tengo esto para trabajar. Tuve que establecer el color de primer plano para que el color de fondo funcionara (??).
Entonces cambié:
cellStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);
a:
cellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
¡Y funcionó!