当前位置: 首页 > news >正文

EasyExcel自定义处理器扩展指定行修改样式包括字体颜色

EasyExcel自定义处理器扩展指定行修改样式包括字体颜色

实现

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.handler.RowWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFColor;import java.util.List;public class CustomRowWriteHandler implements RowWriteHandler {private List<Integer> rowIndexToChange;public CustomRowWriteHandler(List<Integer> rowIndexToChange) {this.rowIndexToChange = rowIndexToChange;}@Overridepublic void afterRowCreate(WriteSheetHolder writeSheetHolder, Row row, Integer relativeRowIndex, Boolean isHead) {//获取信息Sheet sheet = writeSheetHolder.getSheet();Workbook workbook = sheet.getWorkbook();//字体颜色Font font = workbook.createFont();font.setColor(IndexedColors.BLUE.getIndex());//设置样式CellStyle cellStyle = workbook.createCellStyle();cellStyle.setFont(font);for(Integer rowIndex : rowIndexToChange){//过滤表头Row fontRow = sheet.getRow(rowIndex + 1);if(fontRow != null){for (Cell cell : fontRow) {cell.setCellStyle(cellStyle);}}}}}
}// 导出时设置自定义写入处理器
public void exportExcel(List<YourDataClass> data, String fileName, int rowIndexToChange) {EasyExcel.write(fileName, YourDataClass.class).sheet("Sheet1").registerWriteHandler(new CustomRowWriteHandler(rowIndexToChange)).doWrite(data);
}

相关文章:

  • 没等来百度惊艳的All in AI,却等来了国产之光的盘古大模型 5.0
  • java-正则表达式 1
  • Android使用MPAndroidChart 绘制折线图
  • Java学习 - MySQL存储过程、函数和触发器练习实例
  • Java中的设计模式:实战案例分享
  • labelme使用笔记:目标检测数据集标注和语义分割数据集批量生成
  • kafka第二篇——主题创建,主题分区副本分配策略
  • PWR电源控制
  • IDEA services模块无法启动springboot服务(添加了springboot但是为空白)
  • HTTP/2 的 ALPN(应用层协议协商)
  • 【前端】Git 常用
  • C语言| 宏定义
  • Python 学习 第四册 第10章 系统(2)
  • OpenCV图像变换
  • React的State和setState
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • ➹使用webpack配置多页面应用(MPA)
  • Django 博客开发教程 16 - 统计文章阅读量
  • java 多线程基础, 我觉得还是有必要看看的
  • JS变量作用域
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • Vue实战(四)登录/注册页的实现
  • Vue学习第二天
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 分享一份非常强势的Android面试题
  • 聊聊flink的BlobWriter
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 一天一个设计模式之JS实现——适配器模式
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (三)模仿学习-Action数据的模仿
  • (十八)SpringBoot之发送QQ邮件
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转载)深入super,看Python如何解决钻石继承难题
  • .NET Core 版本不支持的问题
  • .Net Core 中间件与过滤器
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net 设置默认首页
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .netcore 获取appsettings
  • .NET运行机制
  • .net专家(高海东的专栏)
  • .net专家(张羿专栏)
  • /run/containerd/containerd.sock connect: connection refused
  • @Autowired自动装配
  • @Builder注释导致@RequestBody的前端json反序列化失败,HTTP400
  • @JSONField或@JsonProperty注解使用
  • @Service注解让spring找到你的Service bean
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798