Я прочитал все вопросы, но ответа не было. Если я изменил цвет ячейки в excel, я все равно получаю 0 и 64. Я использую excel 2007 и poi 3.11. Спасибо за помощь.
try{ File file = new File("C:\\Test\\poi.xlsx");
FileInputStream fis = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sh = wb.getSheet("Tabelle1");
XSSFCellStyle cs = sh.getRow(0).getCell(0).getCellStyle();
System.out.println("Color: "+cs.getFillForegroundColor()); // 0
System.out.println("Color: "+cs.getFillBackgroundColor()); // 64
}catch(Exception e){e.printStackTrace();}
cs.getFillForegroundColorColor().getARGBHex()
Это вернет ARGB в шестнадцатеричном формате
ОБНОВИТЬ
Чтобы проверить цвет, вы можете сделать:
Color color = cs.getFillForegroundColorColor();
if (color.GREY_25_PERCENT || color.GREY_40_PERCENT || color.GREY_50_PERCENT || color.GREY_80_PERCENT)
// is grey
}
ИЛИ если он использует только 2 цвета:
Color color = cs.getFillForegroundColorColor();
if (color.WHITE) {
// is white
}else {
// is grey
}