You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 17:33:25