Условное форматирование пользовательских цветов в Apache POI XSSF

Я пытаюсь установить собственный цвет для заполнения строки с помощью ConditionalFormatting на листе XSSF.

я пробовал

SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting();
ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule("MOD(ROW(),2)=0");
PatternFormatting fill1 = rule1.createPatternFormatting();
XSSFColor customColor = new XSSFColor(new byte[] {alpha, red, green, blue});


fill1.setFillForegroundColor(new XSSFColor(new java.awt.Color(128, 0, 128))); //1
fill1.setFillForegroundColor(customColor); //2

И ни один из этих двух не работает. Он не принимает XSSFColor.

Я видел этот отчет об ошибке и попробовал оба "хака", перечисленные там как работает, и снова не работает. Кроме того, документ не помог.

Я понимаю, что делаю:

setFillForegroundColor(new XSSFColor(new java.awt.Color(red,green,blue)));      

Может работать для одной ячейки.

Большинству решений, с которыми я столкнулся, несколько лет, и они, похоже, не работают. Мне просто нужно, чтобы иметь возможность вводить пользовательский цвет RGB или Hex в качестве условного форматирования на листе XSSF.

Любая помощь?

Также я запускаю POI 3.9, чтобы избежать ошибок синтаксического анализа, таких как: это и это.


person Mr Awesome8    schedule 02.05.2016    source источник


Ответы (1)


Я только что создал for loop, чтобы создать новое правило для каждого цвета (short). Он исчез примерно 62 с несколькими другими оттенками оттуда до 80. Не совсем на заказ, но, по крайней мере, я могу привязать цвета к номеру.

person Mr Awesome8    schedule 02.05.2016