[alibaba/easyexcel]EasyExcel表头自定义颜色不生效

2024-05-11 549 views
1

异常代码

   @Override
    protected void setHeadCellStyle(Cell cell, Head head, Integer relativeRowIndex) {
        XSSFCellStyle cellStyle = (XSSFCellStyle) cell.getCellStyle();
        cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
        cellStyle.setFillForegroundColor(new XSSFColor(new java.awt.Color(84, 131, 194)));
        cell.setCellStyle(cellStyle);
    }

异常提示 重写AbstractCellStyleStrategy的上述方法,断点跟踪执行了,但是实际颜色未生效。 建议描述 希望能帮忙看看这样使用是否正确?

回答

8

+1,最后咋解决的啊

6

我是通过拦截器实现的:

6

我是通过拦截器实现的:

                .registerWriteHandler(new CellWriteHandler() {

                    @Override
                    public void afterCellDispose(CellWriteHandlerContext context) {
                        if (context.getHead()) {
                            XSSFCellStyle cStyle = (XSSFCellStyle) context.getWriteWorkbookHolder().getWorkbook().createCellStyle();
                            cStyle.setFillForegroundColor(new XSSFColor(new Color(223, 169, 169)));
                            cStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);

                            WriteCellStyle cellStyle = context.getFirstCellData().getWriteCellStyle();
                            // WriteCellStyle 中的 short 设置高于 XSSFCellStyle, 需要设置为 null
                            cellStyle.setFillForegroundColor(null);
                        }
                    }
                })
5

WriteCellStyle cellStyle = context.getFirstCellData().getWriteCellStyle(); 这个方法找不到呢,这是哪个版本的呢

5

我是通过拦截器实现的:

                .registerWriteHandler(new CellWriteHandler() {

                    @Override
                    public void afterCellDispose(CellWriteHandlerContext context) {
                        if (context.getHead()) {
                            XSSFCellStyle cStyle = (XSSFCellStyle) context.getWriteWorkbookHolder().getWorkbook().createCellStyle();
                            cStyle.setFillForegroundColor(new XSSFColor(new Color(223, 169, 169)));
                            cStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);

                            WriteCellStyle cellStyle = context.getFirstCellData().getWriteCellStyle();
                            // WriteCellStyle 中的 short 设置高于 XSSFCellStyle, 需要设置为 null
                            cellStyle.setFillForegroundColor(null);
                        }
                    }
                })

我用这个方法试过了也没用