升级Apache POI至5.2.2后,如何解决XSSFColor(Color)构造方法无法解析问题?
Apache POI 5.2.2 中 XSSFColor 构造函数报错的解决办法
POI 5.x 版本开始,XSSFColor(java.awt.Color) 这个构造方法被废弃并移除了,这就是升级到5.2.2后出现Cannot resolve constructor XSSFColor(Color)错误的原因。以下是几种可行的解决方式:
直接使用RGB数组构造(推荐)
直接传入RGB分量的字节数组,第二个参数传null使用默认的sRGB颜色空间:protected final XSSFColor tdBlueColor = new XSSFColor(new byte[]{51, 51, 153}, null);基于java.awt.Color转换构造
如果需要保留和java.awt.Color的交互逻辑,可以先提取颜色的RGB分量再构造:java.awt.Color awtColor = new java.awt.Color(51, 51, 153); protected final XSSFColor tdBlueColor = new XSSFColor( new byte[]{(byte)awtColor.getRed(), (byte)awtColor.getGreen(), (byte)awtColor.getBlue()}, null );使用预定义索引颜色(备选)
如果你的目标颜色和POI提供的预定义颜色匹配,可以直接调用IndexedColors中的对应颜色:// 示例:使用预定义深蓝色,注意其RGB为(0,0,128),和你的目标颜色有差异 protected final XSSFColor tdBlueColor = IndexedColors.DARK_BLUE.getColor();
内容的提问来源于stack exchange,提问作者vishnu
相关产品推荐
相关产品推荐

