Я использую лист 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 для шрифтов по умолчанию.
Пожалуйста, помогите, если есть хорошее решение.