Apache POI XSSF 中的条件格式化自定义颜色

ConditionalFormatting Custom Colors in Apache POI XSSF

我正在尝试使用 XSSF sheet 中的 ConditionalFormatting 设置自定义颜色来填充行。

我试过了

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。

我看到这个Bug Report and tried both "hacks" listed there as working, and again, neither work. Also the doc没有帮助。

我理解这样做:

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

可能适用于单个单元格。

我遇到的大多数解决方案都是几年前的,而且似乎不起作用。我只需要一个 away 就可以输入自定义 RGB 或 Hex 颜色作为 XSSF sheet.

中的条件格式

有什么帮助吗?

另外我是 运行 POI 3.9 以避免解析错误,例如: this and this.

我刚刚创建了一个 for loop 来为每种颜色创建一个新规则 (short)。它在 62 左右逐步淘汰,从那里到 80 有一些不同的色调。 不完全是自定义,但至少我可以将颜色附加到数字上。