esayexcel颜色自定义设置

/**
 * @Title: ExcelHeadContentUtil
 * @Author dxp
 * @Date 2024/6/19 10:36
 * @description:
 */
public class ExcelHeadContentUtil implements RowWriteHandler {
    private Map<Map<Integer, List<Integer>>,byte[]> colorMap;

    public ExcelHeadContentUtil(Map<Map<Integer, List<Integer>>,byte[]> colorMap) {
        this.colorMap = colorMap;
    }
    public ExcelHeadContentUtil(){

    }
    @Override
    public void beforeRowCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Integer integer, Integer integer1, Boolean aBoolean) {

    }

    @Override
    public void afterRowCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Integer integer, Boolean aBoolean) {

    }

    @Override
    public void afterRowDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Integer integer, Boolean aBoolean) {

        if(colorMap != null && !colorMap.isEmpty()){
            Workbook workbook = writeSheetHolder.getSheet().getWorkbook();
            short lastCellNum = row.getLastCellNum();
            colorMap.forEach((key,value) -> {
                key.forEach((a,b) -> {
                    if(row.getRowNum() == a){
                        for (int i = 0; i < lastCellNum; i++) {
                            Cell cell = row.getCell(i);
                            XSSFCellStyle cellStyle = getCellStyle(workbook);
                            if(b.contains(i)){
                                cellStyle.setFillForegroundColor(new XSSFColor(value,null));
                                cell.setCellStyle(cellStyle);
                            }

                        }
                    }
                });
            });
        }
    }
    private XSSFCellStyle getCellStyle(Workbook workbook){
        CellStyle cellStyle = workbook.createCellStyle();
        Font font = workbook.createFont();
        font.setBold(true);
        font.setFontHeightInPoints((short) 10);
        font.setFontName("微软雅黑");
        XSSFCellStyle xssfCellStyle = (XSSFCellStyle) cellStyle;
        xssfCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
        cellStyle.setBorderBottom(BorderStyle.THIN);
        cellStyle.setBorderTop(BorderStyle.THIN);
        cellStyle.setBorderLeft(BorderStyle.THIN);
        cellStyle.setBorderRight(BorderStyle.THIN);
        cellStyle.setAlignment(HorizontalAlignment.CENTER);
        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
        cellStyle.setWrapText(true);
        xssfCellStyle.setFont(font);
        return xssfCellStyle;
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值