poi.apache を使用して xslx ワークブックを読んでいて、セルの RGB カラー コードを取得したいと考えています。XSSFColor から RGB コードを取得しようとすると、そこに色があることがわかっていても、null が返されます。
for(int k = 0; k < r.getLastCellNum(); k++) {
XSSFCellStyle ce = (XSSFCellStyle) r.getCell(k, Row.RETURN_NULL_AND_BLANK).getCellStyle();
XSSFColor col = ce.getFillBackgroundXSSFColor();
byte[] rgb = col.getARgb(); //null
}
内側の CTColor オブジェクトを取得しても役に立ちません。また、null を返します。
byte[] ctRgb = col.getCTColor().getRgb(); // null
他の誰かがこの問題に遭遇したり、解決策を持っていますか?
編集
Creakazoid が指摘したように、Background と Foreground を切り替えると、多くの問題が解決しました。しかし、今私が得ている問題は、グレーのグラデーションです。
たとえば、暗いグレーは黒 (FF000000) として返され、明るいグレーは白 (FFFFFFFF) として返されます。実際のグレーのカラーコードを入手できますか?