poi librería hssfworkbook example descargar java apache-poi poi-hssf

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ó!