我正在使用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