如何使用Apache POI获取Excel单元格字体颜色RGB?

时间:2012-11-06 22:29:30

标签: java apache apache-poi

getStyle().getFont(workbook).getColor()返回短片。如何获得颜色的RGB值?

顺便说一句,

palette.getColor(style.getFont(this.book).getColor()).getTriplet()

并不总是有效(有时会发生空指针异常)。也许我做错了什么。

1 个答案:

答案 0 :(得分:1)

我想我可能已经弄明白了。当单元格使用默认颜色(通常为黑色)时,调色板中不存在默认颜色。

这是一个有效的例子:

final HSSFColor foreColor = palette.getColor(style.getFont(this.book).getColor());
if (foreColor != null) {
    final short[] foreRGB = foreColor.getTriplet();
    if (foreRGB[0] != 0 || foreRGB[1] != 0 || foreRGB[2] != 0) {
        out.append("color: rgb(").append(foreRGB[0]).append(',').append(foreRGB[1]).append(',').append(foreRGB[2]).append(");");
    }
}