gpt4 book ai didi

java - Apache POI - 负颜色值

转载 作者:太空宇宙 更新时间:2023-11-04 11:17:17 27 4
gpt4 key购买 nike

我正在尝试编写一个代码来输出 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(" )");
}

A picture of the Excel sheet

最佳答案

字节在Java中总是有符号的。您可以通过与 0xFF 执行二进制 AND 来获取其无符号值:

...
System.out.print((clr[k] & 0xFF) + " ");
...

但是,如果您执行Color color = style.getFillBackgroundColorColor();,您将只能获得两种可能的填充颜色中的一种。

Excel 单元格可能具有图案填充,然后 FillBackgroundColorColor 是图案后面的颜色,FillForegroundColorColor 是图案的颜色。但默认完全填充的单元格具有实心图案,因此您需要 FillForegroundColorColor 因为 FillBackgroundColorColor 完全被图案覆盖。

所以我相信您需要Color color = style.getFillForegroundColorColor();

关于java - Apache POI - 负颜色值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45320137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com