easyExcel自定义背景颜色easyPoi自定义修改表头背景色

背景:Excel自定义背景颜色,自定义表头背景颜色

注意点:单元格设置背景颜色失效原因/不生效的原因,通常是因为只设置了setFillForegroundColor 参数,这样肯定是不行的,还需要再设置一下 setFillPattern,在setFillPattern中添加FillPatternType.SOLID_FOREGROUND即可

cellStyle.setFillForegroundColor(****)
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);

方法1 - 使用默认的自定义颜色:

cellStyle.setFillForegroundColor(IndexedColors.LIGHT_TURQUOISE.getIndex());
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);

通过获取IndexedColors的不同值来更改颜色(默认颜色对照表在文章底部)

方法2 - 使用rgb方法自定义 :

/**
 * 标题背景色
 */
private static final String DEFAULT_BACKGROUND_COLOR = "#9BC2E6";
// 自定义背景色
int r = Integer.parseInt((DEFAULT_BACKGROUND_COLOR.substring(1,3)),16);
int g = Integer.parseInt((DEFAULT_BACKGROUND_COLOR.substring(3,5)),16);
int b = Integer.parseInt((DEFAULT_BACKGROUND_COLOR.substring(5,7)),16);

HSSFWorkbook wb = new HSSFWorkbook();
HSSFPalette palette = wb.getCustomPalette();
HSSFColor hssfColor = palette.findSimilarColor(r, g, b);

// 背景色与填充
cellStyle.setFillForegroundColor(hssfColor.getIndex());
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);

默认颜色对照表(根据第1列下标对照颜色):

easyExcel自定义背景颜色easyPoi自定义修改表头背景色_第1张图片

easyExcel自定义背景颜色easyPoi自定义修改表头背景色_第2张图片

easyExcel自定义背景颜色easyPoi自定义修改表头背景色_第3张图片

easyExcel自定义背景颜色easyPoi自定义修改表头背景色_第4张图片

easyExcel自定义背景颜色easyPoi自定义修改表头背景色_第5张图片

以上则是IndexedColors所支持的所有默认颜色,如果默认颜色没有你想要的,或者产品指定颜色了,那你需要使用第二种rgb的方式去自定义颜色。

扩展:第二种rgb的方式自定义颜色使用的是HSSFColor,HSSFColor跟IndexedColors一样都是本身支持的一些默认颜色,代码过程就是使用16进制根据下标切割 #9BC2E6 ,再进行转换添加到HSSFColor默认颜色中

你可能感兴趣的:(java,java,excel,easyExcel)