使用提供的“十六进制颜色代码”应用POI自定义颜色

3

我目前正在使用HSSFColor/HSSFPalette和XSSFColor来设置现有/自定义颜色。具体实现如下:

例如,对于HSSF: font.setColor(HSSFColor.WHITE.index);
或者
对于XSSF: cs.setFillForegroundColor(xssfColor);

我想在以上两种情况下传递"十六进制颜色代码"的参数。

例如:对于HSSF:font.setColor()/font.setColor(getShortIndexFromHexColorCodes()) 对于XSSF:cs.setFillForegroundColor();

是否有一种方法可以实现上述功能,在其中我可以传递十六进制颜色代码并将颜色应用于HSSF和XSSF中。

请指导我,谢谢!

1个回答

7
当涉及到代码示例时,可以在这里试一下
现在稍微解释一下。在font.setColor(short)的情况下,参数是标准调色板中的一个索引。通过使用HSSFPalette,您可以调用setColorAtIndex,它需要四个参数。第一个是默认线程中现有的索引位置(即您将要替换的现有颜色)。其他三个分别是红色、绿色和蓝色值,用于您想要的颜色。因此,用您自己创建的自定义内容替换默认调色板中的一个位置,将允许您使用自己的十六进制值。这是HSSF的情况。
XSSF的情况真的很琐碎,这是一个例子:setFillForegroundColor(new XSSFColor(new java.awt.Color(128, 0, 128)))。您不必像在HSSF中那样做出同样的牺牲,只需使用所需的R、G和B十六进制值创建该Color对象。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接