Настройка пользовательского цвета шрифта для XSSFWorkbook в Apache POI

у меня возникли проблемы с настройкой пользовательского цвета шрифта для XSSFWorkbook С Apache POI. Когда я это делаю:

    yellow = workbook.createCellStyle();
    Font whiteFont = workbook.createFont();
    whiteFont.setColor(new XSSFColor(new Color(255, 255, 255)).getIndexed());
    yellow.setFillForegroundColor(new XSSFColor(yellowRGB));
    yellow.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);
    yellow.setFont(whiteFont);

шрифт остается черным, я не уверен, что я делаю неправильно.

2 ответов


можно сделать whiteFont.setColor(new XSSFColor(new Color(255,255,255)));

, есть ошибка в Apache POI, где он переключается черно-белый. Похоже, они поставили "исправление" в XSSFColor.java (посмотрите на XSSFColor.correctRGB ()) для исправления проблемы в Excel. Вероятно, Excel был исправлен, но Apache POI не был обновлен.

вместо этого вы можете сделать:whiteFont.setColor(HSSFColor.WHITE.index) или whiteFont.setColor(IndexedColors.WHITE.index); (это устарело)

или whiteFont.setColor(new XSSFColor(new Color(255,255,254))); это будет очень близко к белому.


XSSFFont font = (XSSFFont) wb.createFont();
font.setColor(new XSSFColor( Color.decode("#7CFC00")));