Apache POI – 负值颜色值
我试图写一个代码,输出Excel工作表中的单元格的颜色,但是当调用方法GetFillBackgroundColor,它给了我三个负值。 我想知道,有没有关系到RGB数字? 这是我写的代码:
CellStyle style = currentCell2.getCellStyle(); Color color = style.getFillBackgroundColorColor(); if (color != null) { byte[] clr = ((XSSFColor) color).getRGB(); System.out.print("( "); for (int k = 0; k<clr.length; k++) { System.out.print(clr[k]+" "); } System.out.print(" )"); }
Excel工作表的图片
一个byte
总是用Java签名。 你可能会得到它的无符号值,做一个二进制AND
0xFF
:
... System.out.print((clr[k] & 0xFF) + " "); ...
但是,如果你做的Color color = style.getFillBackgroundColorColor();
你将只能得到两种可能的填充颜色。
Excel
单元格可能有图案填充,然后FillBackgroundColorColor
是图案背后的颜色, FillForegroundColorColor
是图案的颜色。 但默认完全填充的单元格有固体模式,所以你需要FillForegroundColorColor
因为FillBackgroundColorColor
被模式完全覆盖。
所以我相信你会需要Color color = style.getFillForegroundColorColor();
。