用poi获得精彩的细胞颜色

时间:2014-12-23 13:38:34

标签: java excel apache-poi

我读了所有问题,但没有答案正常。如果我在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();}

1 个答案:

答案 0 :(得分:1)

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
}