Search code examples
javaapache-poipoi-hssf

Setting foreground color for HSSFCellStyle is always coming out black


I am using POI to create an Excel spreadsheet in Java. I have the following code used for creating a header row:

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

The issue I am having is that setting the fill background color on the cell always comes out black, no matter what color I pick. What am I doing wrong? If I don't use the "setFillPattern" line, no color shows up at all.


Solution

  • I got this to work. I had to set the foreground color to make the background color work (??).

    So I changed:

    cellStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);
    

    to:

    cellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
    

    and it worked!