首页 > 其他分享 >easyExcel生成excel并导出自定义样式(三)指定列字体样式

easyExcel生成excel并导出自定义样式(三)指定列字体样式

时间:2024-10-22 14:43:39浏览次数:1  
标签:Set yellowRowIndex 自定义 样式 excel greenRowIndex redRowIndex context font

public class ExcelRowColorHandler implements CellWriteHandler {

    private final Integer columnIndex;
    private final Set<Integer> redRowIndex;
    private final Set<Integer> yellowRowIndex;
    private final Set<Integer> greenRowIndex;

    public ExcelRowColorHandler(Integer columnIndex, Set<Integer> redRowIndex, Set<Integer> yellowRowIndex, Set<Integer> greenRowIndex) {
        this.columnIndex = columnIndex;
        this.redRowIndex = redRowIndex;
        this.yellowRowIndex = yellowRowIndex;
        this.greenRowIndex = greenRowIndex;
    }

    @Override
    public void beforeCellCreate(CellWriteHandlerContext context) {
        // Row in source code context to be optimized: supports parameter input to obtain the number of
        // occurrences of the required field and set the background color
        // to do:(row.getCell(columnIndex)lose efficacy)
    }

    @Override
    public void afterCellDispose(CellWriteHandlerContext context) {
        if (BooleanUtils.isNotTrue(context.getHead())) {
            Integer currentRowIndex = context.getRowIndex();
            Integer currentColumnIndex = context.getColumnIndex();
            //最后一列,(备注信息)设置颜色
            if (currentColumnIndex.equals(columnIndex - 1)) {
                WriteCellData<?> cellData = context.getFirstCellData();
                WriteCellStyle writeCellStyle = cellData.getOrCreateStyle();
                //根据数据内容,设置不同字体颜色
                if (!Objects.isNull(redRowIndex) && redRowIndex.contains(currentRowIndex)) {
                    WriteFont font = new WriteFont();
                    font.setColor(IndexedColors.RED.getIndex());
                    writeCellStyle.setWriteFont(font);
                } else if (!Objects.isNull(yellowRowIndex) && yellowRowIndex.contains(currentRowIndex)) {
                    WriteFont font = new WriteFont();
                    font.setColor(IndexedColors.YELLOW.getIndex());
                    writeCellStyle.setWriteFont(font);
                } else if (!Objects.isNull(greenRowIndex) && greenRowIndex.contains(currentRowIndex)) {
                    WriteFont font = new WriteFont();
                    font.setColor(IndexedColors.GREEN.getIndex());
                    writeCellStyle.setWriteFont(font);
                }
            }
        }
    }

}

 

标签:Set,yellowRowIndex,自定义,样式,excel,greenRowIndex,redRowIndex,context,font
From: https://www.cnblogs.com/mangwusuozhi/p/18492703

相关文章

  • 动态生成excel动态表头easyExcel
    动态生成excel,内容跟随表头填充 组装调用工具方法:List<FileTitleEntity>titleEntityList=newArrayList<>();titleEntityList.add(newFileTitleEntity("name","姓名"));titleEntityList.add(newFileTitleEntity("idNumber"......
  • Access 与Excel 最重要的区别是什么
    Access与Excel最重要的区别是:一、用途不同;二、数据结构不同;三、功能不同;四、数据容量和性能不同;五、多用户并发处理能力不同;六、安全性和权限控制不同;七、扩展性和集成性不同。用途不同在于,Access适用于创建和管理大量结构化数据的数据库系统,Excel则适用于数据分析、计算和图表......
  • EasyExcel读取文件数据不能映射到实体的一种情况(对于链式调用实体的数据映射支持)
    除去在网上能搜到的由于表头配置不对、单元格格式影响、文件编码以及依赖版本之类的问题以外,还存在一个可能导致这个问题的原因,也是我现在遇到的,记录一下。先说结论,EasyExcel不支持映射数据到使用了链式调用的实体类上。我的情况是在接收Excel数据的实体类上添加了Lombok注解:@A......
  • Openlayers高级交互(4/20):手绘多边形,导出KML文件,可以自定义name和style
    KML(KeyholeMarkupLanguage)是一种基于XML的文件格式,用于表示地理数据并在地球浏览器中显示这些数据。KML文件可以用来展示各种类型的地理信息,包括位置点(Point)、路径(LineString)、多边形(Polygon)以及带有地理位置的文本描述(如描述标签)。KML文件还可以包含样式信息(Style),用......
  • 用 (Excel) VBA 读取 OneNote!
    本文记录,用VBA读取OneNote的方法,这块似乎一直是空白,研究了好久才找到解决方案!小白贡献,语失莫怪!问题背景:我在OneNote里有上百篇笔记,可OneNote自己,却无法导出全部的标题。于是我千方百计,想要读取OneNote的文件,来获取标题和日志信息。尝试了各种方案,都没能读出OneNot......
  • 【新专栏】Excel数据分析与模拟决策-送完整电子版内容
     专栏入口:Excel数据分析与模拟决策购买专栏,即送对应完整版电子书及配套的Excel文件。......
  • ORACLE 添加自定义函数
    返回一个值createorreplaceFUNCTIONGET_KEY_BY_QUERY(AAAINVARCHAR2)RETURNNUMBERISITEM_VALUENUMBER;BEGINSELECT'TEST'INTOITEM_VALUEFROMDUAL;RETURNITEM_VALUE;END;返回结果集CREATEORREPLACEFUNCTIONGET_LIST_BY_QUERY(......
  • Python 在Excel中插入、替换、提取、或删除图片
    Excel是主要用于处理表格和数据的工具,我们也能在其中插入、编辑或管理图片,为工作表增添视觉效果,提升报告的吸引力。本文将详细介绍如何使用Python操作Excel中的图片,包含以下4个基础示例:Python在Excel中插入图片Python替换Excel中的图片Python提取Excel中的图片Python删除......
  • ORACLE 自定义函数,把字符串拆分为列/结果集
    使用REGEXP_SUBSTRSELECTREGEXP_SUBSTR(key,'[^,]+',1,ROWNUM)ASVALUEFROM(select'1,3,4,4'askeyfromdual)CONNECTBYROWNUM<=LENGTH(key)-LENGTH(REPLACE(key,',',''))+1;自定义函数:ODCIVARCHAR2LI......
  • Excel-Ctrl+Enter键的妙用
    一、Ctrl+Enter键的妙用 1.1 Ctrl+Enter键在多连续区域输入相同内容比如我要在一块区域内输入相同的数据,我首先选中这块区域,然后在第一个表格内输入数据-输入之后-(不要按回车键)按Ctrl+Enter键,即可全部表格输入同一数据  1.2 Ctrl+Enter键在非连续区域输入相同内容 先......