easyexcel 3.1.0+,设置RBG背景颜色

easyexcel 3.1.0+,设置RBG背景颜色!!!

在网上找到的大部分资料,基于3.1.0+版本都不生效,官网也没有设置RBG的示例
由于WriteCellStyle,不支持直接自定义RBG,只有固定的颜色,只能通过拦截器实现,可以继承AbstractCellStyleStrategy重写setContentCellStyle方法

关键代码

    @Override
    protected void setContentCellStyle(CellWriteHandlerContext context) {
        // 获取和创建CellStyle
        WriteCellData<?> cellData = context.getFirstCellData();
        CellStyle originCellStyle = cellData.getOriginCellStyle();
        if (Objects.isNull(originCellStyle)) {
            originCellStyle = context.getWriteWorkbookHolder().getWorkbook().createCellStyle();
        }
        // 设置背景颜色
        ((XSSFCellStyle) originCellStyle).setFillForegroundColor(new XSSFColor(new java.awt.Color(198, 224, 180), new DefaultIndexedColorMap()));
        originCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
        // 重点!!! 由于在FillStyleCellWriteHandler,会把OriginCellStyle和WriteCellStyle合并,会已WriteCellStyle样式为主,所有必须把WriteCellStyle设置的背景色清空
        // 具体合并规则请看WriteWorkbookHolder.createCellStyle方法
        WriteCellStyle writeCellStyle = cellData.getWriteCellStyle();
        writeCellStyle.setFillForegroundColor(null);
        // 重点!!! 必须设置OriginCellStyle
        cellData.setOriginCellStyle(originCellStyle);

    }

结论

设置颜色生效,但是单元格没样式,可以在WriteCellStyle里面重新设置样式就行!!!

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值