EasyExcel使用: RGB字体,RGB背景颜色,fillForegroundColor颜色对照表

EasyExcel使用: RGB字体,RGB背景颜色,fillForegroundColor颜色对照表

使用EasyExcel导出表格可能会对字体颜色和单元格背景颜色进行自定义的修改。
可以自定义字体颜色或者每个单元格的颜色
要想自定义颜色,需要重写CellWriteHandler接口,实现

 public void afterCellDispose(CellWriteHandlerContext context);(excelExcel3.0.x后才有)

或者

public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) ;

两个方法,但是只能重写其中一个,全部重写的话只会运行第一个。
首先对于字体自定义颜色rgb:

  // 拿到poi的workbookWorkbook workbook = context.getWriteWorkbookHolder().getWorkbook();Cell cell = context.getCell();// xlsx格式XSSFRichTextString richString = new XSSFRichTextString(cell.getStringCellValue());// 创建字体样式Font font = workbook.createFont();// 设置字体RGB颜色byte[] rgb = new byte[]{(byte) 146, (byte) 208, (byte) 80};XSSFFont xssfFont = (XSSFFont) font;xssfFont.setColor(new XSSFColor(rgb, null));//应用样式richString.applyFont([开始位置], [结束位置], font);

对于单元格自定义颜色rgb:

// 拿到poi的workbook
Workbook workbook = context.getWriteWorkbookHolder().getWorkbook();
// 这里千万记住 想办法能复用的地方把他缓存起来 一个表格最多创建6W个样式
// 不同单元格尽量传同一个 cellStyle
CellStyle cellStyle = workbook.createCellStyle();
//设置rgb颜色
byte[] rgb = new byte[]{red, green, blue};
XSSFCellStyle xssfCellColorStyle = (XSSFCellStyle) cellStyle;
xssfCellColorStyle.setFillForegroundColor(new XSSFColor(rgb, null));
// 这里要把 WriteCellData的样式清空, 不然后面还有一个拦截器 FillStyleCellWriteHandler 默认会将 WriteCellStyle 设置到
// cell里面去 会导致自己设置的不一样
context.getFirstCellData().setWriteCellStyle(null);

context.getFirstCellData().setWriteCellStyle(null);这一行一定要加!不然会被覆盖掉。

对于要求不太严格的可以直接使用注解EasyExcel注解fillForegroundColor提供的60余种颜色:
颜色对照表如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/294599.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue 组件传参 prop向下传递、emit向上传递

组件传参 学习了组件用法&#xff0c;就像一种嵌套引用关系&#xff0c;在这个关系中&#xff0c;经常会涉及相互传数据的需求&#xff0c;即父组件传子组件&#xff0c;子组件传父组件。 父、子组件的关系可以总结为 : prop 向下传递(和事件无关)&#xff0c; emit 事件&…

AI-数学-初高中-不等式

原教学视频&#xff1a;初高衔接】2不等式解法梳理_哔哩哔哩_bilibili 1.一元二次不等式 2.分式不等式 3.高次函数图像 4.绝对值不等式 5.根式不等式

tsconfig.app.json文件报红:Option ‘importsNotUsedAsValues‘ is deprecated...

在创建vue3 vite ts项目时的 tsconfig.json&#xff08;或者tsconfig.app.json&#xff09; 配置文件经常会报一个这样的错误&#xff1a; 爆红&#xff1a; Option ‘importsNotUsedAsValues’ is deprecated and will stop functioning in TypeScript 5.5. Specify compi…

打造完美有声书体验,Audiobook Builder for Mac助您一键生成

在快节奏的生活中&#xff0c;有声书成为越来越多人追求放松与娱乐的方式。然而&#xff0c;找到合适的有声书却不容易&#xff0c;而Audiobook Builder for Mac正是为解决这个问题而诞生的完美解决方案。 Audiobook Builder for Mac是一款专业的有声书生成工具&#xff0c;它…

Linux笔记本电脑投屏到电视,用网页浏览器就能投屏到电视!

Linux系统的电脑如果要投屏到安卓电视屏幕上&#xff0c;可以使用投屏工具AirDroid Cast的网页版和TV版一起实现。 首先&#xff0c;在Linux系统的电脑里用chrome浏览器或edge浏览器打开网址webcast.airdroid.com。这个网址就是AirDroid Cast的网页版。你可以看到中间白色框框的…

PromptNER: Prompt Locating and Typing for Named Entity Recognition

原文链接&#xff1a; https://aclanthology.org/2023.acl-long.698.pdf ACL 2023 介绍 问题 目前将prompt方法应用在ner中主要有两种方法&#xff1a;对枚举的span类型进行预测&#xff0c;或者通过构建特殊的prompt来对实体进行定位。但作者认为这些方法存在以下问题&#xf…

洛谷 NOIP2014普及组 比例简化 + 洛谷 NOIP2015普及组 扫雷游戏

先看第一道题比例简化&#xff1a; 题干&#xff1a; 输入输出样例以及样例范围&#xff1a; 其实不难看出这一道题目的样例范围并不大&#xff0c;所以其实我们可以用暴力枚举的方式进行解答&#xff0c;虽然暴力枚举在很多题目并不值得提倡&#xff0c;不过不得不承认它是一…

【计算机系统结构实验】实验2 流水线中的冲突实验

2.1 实验目的 加深对计算机流水线基本概念的理解&#xff1b; 理解MIPS结构如何用5段流水线来实现&#xff0c;理解各段的功能和基本操作&#xff1b; 加深对结构冲突/数据冲突/控制冲突的理解&#xff1b; 进一步理解解决数据冲突的方法&#xff0c;掌握如何应用定向技术来…

如何提升亚马逊、速卖通店铺自然排名?测评自养号的关键要素

一、自然排名的重要性 一条链接是否推广成功或者赚到钱&#xff0c;就看这条链接的自然排名有没有打上来! 无论是搜索流量的自然排名&#xff0c;还是关联流量的自然排名&#xff0c;或BSR排行榜&#xff0c;这些自然排名的入口就是我们要时刻盯紧的位置。 二、自然排名的位…

27.Java程序设计-基于Springboot的在线考试系统小程序设计与实现

1. 引言 随着数字化教育的发展&#xff0c;在线考试系统成为教育领域的一项重要工具。本论文旨在介绍一个基于Spring Boot框架的在线考试系统小程序的设计与实现。在线考试系统的开发旨在提高考试的效率&#xff0c;简化管理流程&#xff0c;并提供更好的用户体验。 2. 系统设…

STM32项目设计:智能门禁系统核心板版本 4种解锁方式

文章目录 一、项目简介二、原理图设计![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/809dd6c70b34425eb42f69187020c717.png)程序设计 哔哩哔哩视频链接&#xff1a; https://www.bilibili.com/video/BV1K64y1V7Y9?p4&spm_id_frompageDriver&vd_sourcee…

基于vue-advanced-chat组件自义定聊天(socket.io+vue2)

通过上一篇文章https://blog.csdn.net/beekim/article/details/134176752?spm=1001.2014.3001.5501, 我们已经在vue-advanced-chat中替换掉原有的firebase,用socket.io简单的实现了聊天功能。 现在需要自义定该组件,改造成我们想要的样子: 先将比较重要的几块提取出来 …