为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 Apache POI 不能用 rgb 获得我选择的颜色

为什么 Apache POI 不能用 rgb 获得我选择的颜色

侃侃无极 2021-10-13 16:24:28
我用下面的方法用 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 但是 getRGBColor 方法返回另一个颜色代码 204,204,255 
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

根据文档,参数 forsetFillForegroundColor可以是 EnumIndexedColorssetFillBackgroundColor(XSSFColor color).

尝试setRGB从 XSSFColor 类使用

XSSF颜色

示例代码 -

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


查看完整回答
反对 回复 2021-10-13
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

正如您在docs 中所读到的,该方法findSimilarColor在自定义调色板中找到最接近的匹配颜色。您可以尝试使用 方法获得准确的颜色findColor。但请注意,该方法findColor可以返回null.


查看完整回答
反对 回复 2021-10-13
  • 3 回答
  • 0 关注
  • 323 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信