前言

自定义背景颜色,不是网上的那几个固定很丑的颜色,支持​​RGB​​ 看我这篇就行了 不用走弯路

解决

废话不多说 先说自定义 再说固定的那种颜色

设置RGB

//注意不要getIndex 得到的short 值并不能设置成功颜色
//short fontColor1 = new XSSFColor(new java.awt.Color(0, 0, 0)).getIndex();
XSSFColor xssfColor= new XSSFColor(new java.awt.Color(247, 0, 0));
//设置背景色
styleTemp.setFillForegroundColor(xssfColor);
styleTemp.setFillPattern(FillPatternType.SOLID_FOREGROUND);

注意:

  1. Color(0, 0, 0) 三个参数就是RGB颜色
  2. new java.awt 必须是这个类,POI自带的不生效
  3. 字体颜色用这个无效,还得用自带的 HSSFColor.HSSFColorPredefined.WHITE.getIndex()
  4. ​附带工具:HTML网页在线拾色器​
  5. ​附带工具:桌面点击拾色器​

只要用了,IDEA就会显示这个颜色

POI 自定义颜色 RGB_自定义

导出样式

POI 自定义颜色 RGB_java_02

原始操作

这种是固定的

//设置背景色
cellStyle.setFillForegroundColor(index);
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);

可以看这个链接 他能做到的颜色 很局限,也不好看

​​cell设置背景颜色为啥不起作用​

POI 自定义颜色 RGB_java_03

拓展 HSSFPalette 调色板

我用的​​XSSFWorkbook​​并没有下边这个方法

HSSFPalette palette = workbook.getCustomPalette();
palette.setColorAtIndex(HSSFColor.BLACK.index,(byte)color[0], (byte)color[1], (byte)colo

​参考文章:POI中怎么使用自定义字体颜色​​​ 他这个有错误,​​byte​​类型127最大,颜色最大值​​255​​,用时候注意
注:工作簿创建有要求

//用多态方式创建的工作簿没有下列方法
Workbook wb1 = new HSSFWorkbook();
//必须这样创建 才可以调用调色板
HSSFWorkbook wb2 = new HSSFWorkbook();
wb2.getCustomPalette();

拓展2

关于POI下载其他的样式调节方式可以看我的新博客​​POI 样式调节​​ 😃