我正在使用poi.apache读取xslx工作簿,并且想要获取单元格的RGB颜色代码。当我试图让rgb代码形成一个XSSFColor时,即使我知道那里有颜色,它也会返回null。当出现颜色时,XSSFColor.getRgb()返回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指出,切换背景和前景固定我的很多问题。但是现在我得到的问题是灰度梯度。
例如,深灰色返回为黑色(FF000000),浅灰色返回为白色(FFFFFFFF)。我可以得到真正的灰色代码吗?
谢谢您的答复。这确实解决了我90%的问题,这很好。现在的问题是,当我的颜色为“深灰色”时,我变黑(FF000000),而浅灰色时变为白色(FFFFFFFF)。有没有办法获得更具体的颜色代码? – Aboutblank 2013-02-28 20:39:18