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

时间:2012-06-25 11:51:41

标签: apache-poi

我目前正在使用HSSFColor / HSSFPalette和XSSFColor来设置现有/自定义颜色。实施如下: 例如 font.setColor(HSSFColor.WHITE.index);对于HSSF 要么 cs.setFillForegroundColor(xssfColor);对于XSSF

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

喜欢:HSSF的:font.setColor()/ font.setColor(getShortIndexFromHexColorCodes())  对于XSSF:cs.setFillForegroundColor();

有没有办法做上述事情,我可以传递十六进制颜色代码,颜色应用于HSSF和XSSF。

请指导我,并提前致谢:)

1 个答案:

答案 0 :(得分:7)

代码示例try here

现在稍作解释。在font.setColor(short)的情况下,参数是标准调色板中某个点的索引。通过使用HSSFPalette,您可以调用setColorAtIndex,其中包含四个参数。第一个是默认线程中的现有索引点(表示要替换的现有颜色)。其他三个分别是您想要的颜色的红色,绿色和蓝色值。因此,使用自定义创建替换默认调色板中的某个点将允许您使用自己的十六进制值。这是HSSF的案例。

XSSF案例确实很简单,这是一个例子setFillForegroundColor(new XSSFColor(new java.awt.Color(128, 0, 128)))你不必在HSSF中做出同样的牺牲。只需使用R,G和B所需的十六进制值创建Color对象