java - 为什么 Apache POI 无法使用 RGB 获取我选择的颜色

标签 java apache-poi

我用下面的方法得到了 RGB 颜色

public short getRGBColor(int red, int green, int blue){
        HSSFWorkbook hwb = new HSSFWorkbook();
        HSSFPalette palette = hwb.getCustomPalette();
        return palette.findSimilarColor(red,green, blue).getIndex();
    }

然后调用下面的方法

   public CellStyle createStyles(Workbook wb){
    CellStyle style;
    Font font1 = wb.createFont();
            font1.setBold(false);
            style = wb.createCellStyle();
            style.setAlignment(HorizontalAlignment.CENTER);
            style.setFillForegroundColor(getRGBColor(211,225,237));
            style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
            style.setFont(font1);
        return  style;
}

这是我选择的颜色代码211,225,237 enter image description here

但是 getRGBColor 方法返回另一个颜色代码 204,204,255 enter image description here

最佳答案

根据文档,setFillForegroundColor 的参数可以是枚举 IndexedColorssetFillBackgroundColor(XSSFColor color) 中的索引值。

尝试使用 XSSFColor 类中的 setRGB

XSSFColor

示例代码 -

headerCellStyle.setFillForegroundColor(IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex());

关于java - 为什么 Apache POI 无法使用 RGB 获取我选择的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52530159/

相关文章:

java - 替代地实现单例

java - Sling - 使用 pageManager 查找页面路径

java - 在 Java 中打开 Microsoft Word

java - 如何使用 POI 库从 Excel 中读取筛选后的行

Java 数据库查询未在控制台中打印出来

java - Hibernate 查询实体名称

java - 以编程方式创建和加入 Hyperledger Fabric channel

java - 将表格边框设置为粗

java - 为什么 Apache POI 中的 Offset 函数最后一列索引太低以及如何处理?

java - 独立 Jython : Import Error (Apache-POI)