2016-05-02 13 views
0

Ich versuche, eine benutzerdefinierte Farbe zum Füllen einer Zeile mit ConditionalFormatting in einem XSSF-Blatt festzulegen.BedingteFormatierung von benutzerdefinierten Farben in Apache POI XSSF

Ich habe

versucht
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 

Und keiner der beiden letztgenannten Arbeit. Es akzeptiert keine XSSFColor.

Ich sah diese Bug Report und versuchte beide "hacks" dort als funktionierend aufgeführt, und wieder funktionieren beide nicht. Auch the doc war keine Hilfe.

Ich verstehe, dass zu tun:

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

für eine einzelne Zelle arbeiten.

Die meisten Lösungen, die ich gefunden habe, sind ein paar Jahre alt und scheinen nicht zu funktionieren. Ich brauche nur einen Weg, um eine benutzerdefinierte RGB- oder Hex-Farbe als ConditionalFormatting in einem XSSF-Blatt eingeben zu können.

Irgendwelche Hilfe?

Auch ich laufen POI 3.9 um zu vermeiden, Parsing Fehler wie: this und this.

Antwort

0

Ich habe gerade eine for loop erstellt, um eine neue Regel für jede Farbe zu erstellen (short). Es ging um 62 mit ein paar verschiedenen Schattierungen von dort zu 80. Nicht genau benutzerdefiniert, aber zumindest kann ich die Farben an eine Nummer anhängen.