почему Apache POI не может получить выбранный мной цвет с помощью rgb - PullRequest
0 голосов
/ 27 сентября 2018

Я получаю цвет с помощью rgb с методом ниже

public short getRGBColor(int red, int green, int blue){
        HSSFWorkbook hwb = new HSSFWorkbook();
        HSSFPalette palette = hwb.getCustomPalette();
        return palette.findSimilarColor(red,green, blue).getIndex();
    }

, затем вызываю метод ниже

   public CellStyle createStyles(Workbook wb){
    CellStyle style;
    Font font1 = wb.createFont();
            font1.setBold(false);
            style = wb.createCellStyle();
            style.setAlignment(HorizontalAlignment.CENTER);
            style.setFillForegroundColor(getRGBColor(211,225,237));
            style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
            style.setFont(font1);
        return  style;
}

Это мой выбранный код цвета 211,225,237 enter image description here

, но метод getRGBColor возвращает другой код цвета 204,204,255 enter image description here

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

согласно документам, параметр для setFillForegroundColor может быть индексированным значением из Enum IndexedColors или setFillBackgroundColor(XSSFColor color).

Попробуйте использовать setRGB из класса XSSFColor

XSSFColor

Пример кода -

headerCellStyle.setFillForegroundColor(IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex());
0 голосов
/ 27 сентября 2018

Как вы можете прочитать в документах , метод findSimilarColor находит наиболее подходящий цвет в пользовательской палитре.Вы можете попытаться получить точный цвет по методу findColor.Но учтите, что метод findColor может вернуть null.

...