Java Apache poi excel彩色单元格问题

Java Apache poi excel彩色单元格问题,java,excel,apache-poi,Java,Excel,Apache Poi,我正在使用ApachePOI编写excel数据 String colour = "A2C465"; byte[] ret = new byte[3]; for(int i=0; i<3; i++){ ret[i] = (byte)hexToInt(colour.charAt(i * 2), colour.charAt(i*2+1)); } public int hexToInt(char a, char b){ int x = a < 65 ? a-48 :

我正在使用ApachePOI编写excel数据

String colour = "A2C465";
byte[] ret = new byte[3];
for(int i=0; i<3; i++){
    ret[i] = (byte)hexToInt(colour.charAt(i * 2), colour.charAt(i*2+1));
}

public int hexToInt(char a, char b){
        int x = a < 65 ? a-48 : a-55;
        int y = b < 65 ? b-48 : b-55;
        return x*16+y;
    }
String color=“A2C465”;
字节[]ret=新字节[3];

对于(int i=0;iAxel Richter的评论有您想要的答案,如果您需要将字节转换为int,则应使用按位和避免保留符号。以下示例显示字节作为其有符号值以及转换为int时的值

    byte[] ret = DatatypeConverter.parseHexBinary("A2C465");
    for (byte b: ret) {
        int asInt = b & 0xFF;
        System.out.println(b + " vs " + asInt);
    }

如果返回值为负,只需添加256

-94+256=162

-60+256=196


101将保持101,因为一个字节的范围从-128到127。

请提供
hexToInt(char c1,char c2){…}
。为什么不简单地使用
Integer.parseInt(“A2”,16)
Integer.parseInt(“C4”,16)
等等?谢谢你的回复。我已经添加了代码谢谢你的回复“字节数据类型是一个8位有符号2的补码整数。它的最小值为-128,最大值为127(包括)。请参阅。因此十六进制“A2”=int 162=字节-94和十六进制“C4”“=int 196=字节-60。您在字节数组中的结果是正确的。您如何在apache poi中使用此字节数组?至少在
Class hssfpalete
public HSSFColor addColor(字节红、字节绿、字节蓝)中使用此字节数组?”
字节应该像未签名的地方一样工作。但是
java.awt.Color
需要R、G、B的int值。