我正在使用XLSX工作表,所以我正在使用XSSF实例。但是,当我尝试获取单元格中某个字体的RGB值时,对于具有默认字体颜色的某些字体,我会得到NULL,而对于默认字体颜色,某些RGB值(通常为0,就可以了)。这种一致性破坏了我查找实际上没有默认字体颜色的单元格的逻辑,换句话说,我的目标是找到字体颜色不是默认字体的单元格。
这是我正在使用的代码段
byte[] stdbyte = { 0, 0,
0 }; /* setting standard byte value as 0 for default RGB color as black */
Cell secondcell = row.getCell(1);
Cell thirdcell = row.getCell(2);
boolean flag1 = false;
XSSFCellStyle cs1 = (XSSFCellStyle) secondcell.getCellStyle();
XSSFFont font1 = cs1.getFont();
XSSFColor color1 = font1.getXSSFColor();
if (null != color1) {
byte[] secondcellRGB = color1.getRGB();
flag1 = Arrays.equals(stdbyte, secondcellRGB);
}
boolean flag2 = false;
if(null!=thirdcell) {
XSSFCellStyle cs2 = (XSSFCellStyle) thirdcell.getCellStyle();
XSSFFont font2 = cs2.getFont();
XSSFColor color2 = font2.getXSSFColor();
if (null != color2) {
byte[] thirdcellRGB = color2.getRGB();
flag2 = Arrays.equals(stdbyte, thirdcellRGB);
}
}
我做了空检查,但是正如我所说的,从getXSSFColor方法返回默认字体的颜色是不一致的。
如果有好的解决方案,请提供帮助。