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

使用EasyExcel对某列做特定样式,样式失效

简单说两句

✨ 少壮不努力,老大加班加到让你怀疑人生!!!

作者:银氨溶液

CSDN个人主页:银氨溶液

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

场景浅尝

最近,我正在做一个导出excel的需求,这个需求里面有一点要求对excel里面的某列做特定的样式展示,好,就这一句话,我的噩梦开始了~

问题追溯

我对某列做特定样式修改后,无论我使用什么样的方法,最后的excel文件里面这行样式依旧没有任何改变

可以先看一下伪代码:

// 1. EasyExcel 开始写数据 for (row in data) { for (col in columns) { Cell cell = createCell(row, col); // 2. 你的自定义 Handler 处理某一列 if (col == targetCol) { // 你设置了自己的样式 CellStyle myStyle = buildHyperlinkStyle(workbook); cell.setCellStyle(myStyle); cell.setHyperlink(hyperlink); } } } // 3. EasyExcel 内部的样式策略开始生效 for (row in allRows) { for (col in allColumns) { Cell cell = getCell(row, col); // EasyExcel统一覆盖内容区域的样式 CellStyle contentStyle = buildContentStyle(workbook); cell.setCellStyle(contentStyle); // 这一步把你之前设置的样式覆盖掉了 } } // 4. 文件写出 writeExcelFile();

其实原因很简单,我这儿是因为有一个全局的样式覆盖了我之前对某个列单独做的样式,就算是你把自定义的handler放到统一样式后面去处理,其实也会被覆盖,因为EasyExcel 并不是按“注册顺序”严格执行所有 Handler

举个通俗的比喻

你用 POI 原生 setCellStyle,就像在 Excel 里手动给每个格子调样式,但有别人在后面又给你批量“刷回去”,你就白忙活了。

解决办法

所以解决办法其实也很简单,既然始终会被覆盖,那就在全局样式处理完之后,再单独去对这列做样式处理,所以直接使用EasyExcel的样式体系来处理,来看伪代码:

// 推荐做法 for (row in data) { for (col in columns) { Cell cell = createCell(row, col); if (col == targetCol) { // 用 EasyExcel 的样式体系(WriteCellStyle) WriteCellData cellData = getCellData(cell); WriteCellStyle myStyle = new WriteCellStyle(); myStyle.setWriteFont(蓝色下划线字体); cellData.setWriteCellStyle(myStyle); cell.setHyperlink(hyperlink); } } } // EasyExcel 最后统一应用所有 WriteCellStyle,不会覆盖你自定义的

什么是 WriteCellStyle?

WriteCellStyle是 EasyExcel 提供的一个“样式描述对象”,
你可以把它理解为「描述 Excel 单元格样式的模板」,比如字体、颜色、下划线、居中、边框等。

它不是 POI 的 CellStyle 对象,也不是直接应用到 Excel 的样式,
而是 EasyExcel 用来收集每个单元格想要什么样式
等到所有数据都写完时,EasyExcel 会自动帮你把这些样式应用到对应的单元格上。

为什么 WriteCellStyle 能实现你想要的效果?

EasyExcel 的样式覆盖机制:

  • EasyExcel 会收集所有的 WriteCellStyle(你可以通过 Handler 或策略写到 WriteCellData 里)

  • 最后统一遍历所有单元格,把 WriteCellStyle 转成 POI 的 CellStyle,一起应用到 Excel 文件

  • 这样就能保证你的自定义样式不会被其他策略覆盖掉

【都看到这了,点赞加关注,收藏不迷路呀~】😚😚

💬

✨ 一直努力让自己发光发亮的银氨啊~💖 爱生活,更爱分享,分享各种学习干货!🌈 感谢关注,关注了你就是我的超级粉丝啦!🔒 以下内容仅对你可见~

作者:银氨溶液

CSDN个人主页:银氨溶液

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

http://www.jsqmd.com/news/317870/

相关文章:

  • Flutter艺术探索-Flutter插件开发:自定义Plugin实战指南
  • 2026实测|AI英语课程哪家好?家长必看的选课指南+口碑榜单
  • 漏洞挖掘完整流程拆解:从信息收集到漏洞提交(入门实操版)
  • 赋能精密检测设备:酶标仪专用显示屏全链路解决方案(从医用级面板到7-10天快速定制)
  • 2026中国最新板材十大厂家推荐!山东等地优质板材权威品牌榜单发布,环保与品质双优助力健康家居生活.
  • 2026年国内上料机优质厂家TOP榜:自动化送料,解放人工
  • 中日跨境物流不踩坑指南:优质服务商与核心选型技巧
  • 2026国内文旅研学机构榜单!家长闭眼抄作业,避开90%的坑
  • 2026年行业内诚信的抖音广告代运营公司找哪家,广告代运营/抖音头条信息流广告,抖音广告代运营企业哪家好
  • 终端代理修改
  • 2026优质隧道区域控制器实力公司推荐:隧道分布式控制器/隧道变电所 plc 区域控制器/隧道洞外光强检测器/rtu 区域控制器/选择指南
  • Java程序员必会JDK源码怎么学?
  • 2026高性价比文旅研学红黑榜|教育博主亲测,遛娃党闭眼抄作业
  • 聊聊Java程序员就业现状!
  • 2025-2026年沈阳小户型/老房翻新/二手房装修行业公司推荐竞争格局深度分析报告
  • 四川高分子量高密度聚乙烯HMWHDPE双波峰缠绕结构壁管公司——行业内最具实力的三家公司
  • 2026年四川DRPO改性聚烯烃钢塑增强缠绕管公司哪家好:三大公司深度测评
  • 四川MPVE钢塑增强缠绕管厂家选四川易霖诚泰
  • 2026酸辣粉加盟稳赚指南:避开坑、选对品牌,创业少走弯路
  • 2026Q1 不锈钢水箱厂家推荐榜 全链智造 + 区域深耕 标杆品牌实力出圈
  • 入门必备漏洞挖掘工具清单:用法解析与实战场景适配
  • 小程序毕设项目:基于小程序+springboot商城系统设计与实现(源码+文档,讲解、调试运行,定制等)
  • 基于STM3251单片机的智能血压表设计 51/STM32单片机原理图PCB毕业设计指导
  • macOS Java 多版本环境配置完全指南
  • 【毕业设计】基于小程序+springboot商城系统设计与实现(源码+文档+远程调试,全bao定制等)
  • 基于单片机控制的家用鱼缸水温与溶氧量自动调节系统 51/STM32单片机原理图PCB毕业设计指导
  • 智能语音加湿器控制系统设计 51/STM32单片机原理图PCB毕业设计指导
  • 小程序毕设项目:基于springboot的4S店试驾平台小程序(源码+文档,讲解、调试运行,定制等)
  • 基于51单片机的家庭烟雾燃气报警系统 51/STM32单片机原理图PCB毕业设计指导
  • 【计算机毕业设计案例】基于SpringBoot的4S店试驾平台系统微信小程序基于springboot的4S店试驾平台小程序(程序+文档+讲解+定制)