使用FreeMarker导出带有背景色的excel

Java POI与EasyExcel实战:Excel处理核心技术与内存优化指南 在Java企业级开发中,处理Office文档是常见需求,尤其是Excel文件的读写操作。其核心原理在于通过API解析和生成基于OLE2与OOXML标准的文件格式,实现自动化报表生成与数据解析。这项技术的核心价值在于提升业务系统的自动化能力与数据处理效率,广泛应用于财务对账、数据报表导出、合同模板批量处理等场景。针对大数据量操作时的内存溢出(OOM)挑战,开发者需要掌握流式处理与内存优化策略。本文深入解析Apache POI的HSSF、XSSF与SXSSF核心组件,对比阿里EasyExcel的优劣,并提供解决 阅读详情

需要的答案的可以直接看结论

起因

工作需求,需要根据列表数据导出为excel
选择导出工具类时有:POI、糊涂工具包、FreeMarker....

个人认为POI通过代码写excel样式比较麻烦,且不直观,放弃
糊涂工具包没用过,他包含很多工具类,项目一时用不上这些工具类,放弃

最后选择了FreeMarker,因为FreeMarker的优点是,我可以预先设计好样式,在通过FreeMarker的
语法糖,类似ONNL的${} <list>标签等来得到我要的excel,样式的实现简单直观。

解决

修改仅有一行的excel,另存为xml,对比xml文件前后发生的变化
在这里插入图片描述
发现Cell标签中的styleID发生了变化,追踪这个变化,得到结论。

结论

FreeMarker的初步体验,前辈之备述足以,这里讲怎样为excel添加样式,以及怎么发现这些样式的使用规则。
使用FreeMarker模版导出Excel
基于freemarker实现excel的模板导出

另存为xml格式的excel文件中,有Cell标签,找到其中的StyleID
在这里插入图片描述

修改(没有则添加)styleID=53的标签中的<Interior ss:Color="",出现背景色
在这里插入图片描述
效果
在这里插入图片描述

Java使用Apache POI XWPF实现Word文档动态导出:文字、表格与图片循环生成 在Java后端开发中,数据导出是常见的功能需求,尤其涉及将动态数据固化为标准格式文档的场景。Apache POI作为处理Office文档的主流开源库,其XWPF组件专门用于操作.docx格式的Word文件。通过编程方式控制XML结构,开发者能够实现文字、表格、图片等元素的精确生成与样式定制,这对于需要生成报告、合同、申请表等固定格式文档的OA、ERP及教育管理系统具有重要技术价值。本文聚焦于利用Apache POI XWPF实现复杂表单数据的Word导出,核心解决了动态表格循环与图片插入的技术难点,并提供了 阅读详情

相关推荐

Java动态导出Word文档:基于Apache POI的模板替换方案详解

在Java后端开发中,动态生成Word文档是处理报告、合同等业务文档的常见需求。其核心原理在于实现数据与样式的分离,通过模板技术将业务数据填充到预设格式的文档中,从而提升开发效率和文档保真度。Apache POI作为Java操作Office文档的主流库,提供了强大的API支持,尤其适合处理.docx格式文件。在工程实践中,采用模板替换方案能有效平衡开发可控性与样式灵活性,开发者只需关注数据绑定逻辑,而样式设计可交由专业工具完成。这种方案广泛应用于需要动态生成复杂格式文档的场景,例如订单导出、报告生成等。本文

weixin_30239339的博客 361

使用freemarker动态设置表格背景色

在项目中遇到一个这么一个要根据表格数值的不同,设置不同的背景色。例如,6月份的结果是6,根据阀值要设置成红色。实现起来也很简单,在模板生成的xml中,找到对应得单元格,一个tc元素为一个单元格,设置对应w:shd元素的属性${c.m6color}为java那边传过来的数据,例如${c.m6color}的值为'red',就会显示红色,也可以使用RGB格式表示颜色...

qq_37223784的博客 3707

MyExcel v4.5.0实战:Java高效Excel导出导入指南

Excel数据处理是Java开发中的常见场景,Apache POI作为底层库功能强大但API繁琐,尤其在复杂表头、大数据量导出和模板填充时代码冗余。MyExcel基于POI封装,通过注解与链式Builder模式,将样式、布局、性能优化自动化。其内置SXSSF流式写入,可稳定处理数十万行数据;支持多级表头自动合并、模板渲染及SAX模式导入。在实际报表系统、数据中台、管理后台等场景中,MyExcel能显著降低Excel导入导出的开发成本。本文围绕MyExcel v4.5.0,详细拆解其核心特性与实战要点,帮助开

weixin_29698641的博客 305

FreeMarker导出world表格插入图片

1、FreeMarker简介 FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 在线手册: 制作ftl模版 在上面中整理代码 这里要将字符串删掉换成你所需要的key,如: 如过是多张图片则需要加一个list标签 代码、工具类 /** * 通过 ftl 文件装填 result 数据生成静态文件

小菜鸟的博客 1770

android中引用颜色的配置文件colors.xml

这个配置文件里面,包含了上百种颜色!很方便使用,还有中文注释!

Linux USB Gadget框架解析:从设备模拟到驱动开发实战

USB(通用串行总线)是现代计算机系统中应用最广泛的外设连接标准,其主从动态切换的特性使其在嵌入式系统中扮演着双重角色。与I2C、SPI等固定主从架构不同,USB设备需要同时支持主机(Host)和从机(Device)两种模式,这催生了Linux内核中独特的USB Gadget框架。该框架通过分层设计,将硬件控制器驱动(UDC)、功能逻辑(Function)和配置管理(Configfs)解耦,实现了灵活的设备模拟能力。在工程实践中,开发者可以利用Gadget框架快速实现U盘、网络适配器、串口转换器等常见USB

weixin_28007513的博客 560

利用freemarker模板导出复杂excel可带图片

效果: 编辑的模板 增加数据 导出的效果 模板是什么样 导出的就是什么样 不是xml重名xlsx版本 输出真实的xlsx格式excel office打开不会报错 version:0.1.4 原作者:csdn 大脑补丁 原作者教程:点我查看 发布修复作者:ZGIT csdn:点我查看 v0.1.4 1.修复读取xml异常 2.修复填充列宽异常 3.修复合并单元格格式异常 4.添加表格填充颜色适配 5.添加文字颜色适配 maven项目引入: <dependency> <groupId&

ZGIT的博客 1570

数字IC后端先进工艺设计实现之TSMC 12nm 6Track工艺数字IC后端实现重点难点盘点

如果你仅仅是跑个先进工艺的flow,不懂先进工艺在数字IC后端实现上的不同点,为何有这样的不同点,针对这些不同之处后端实现阶段如何考虑它们,那么你等于0经验!大家可以针对本文所列的要点进行复盘,如果这些都搞透彻了,你就可以大胆把T12 nm的A72和A55项目写到你的简历中。T12这个工艺也是支持Preferred和Non-prefered两个方向来完成routing的,但是它对它们的最小线宽和最小线间距提出了更严格的要求。所有各个子模块的形状,彼此之间的间距都是有严格的要求。为何要有P48这一层?

weixin_37584728的博客 8333

另类:JAVA用freemarker生成复杂Excel。(freemarker)

上次写了一篇关于生成Word文档:http://blog.youkuaiyun.com/zhanwentao2/article/details/7255432。 在生成Excel的时候,大多时候都是使用poi,jxl等进行的,但是对于复杂的Excel来说,这个工作量是非常的大的,而且,对于我这么懒的人来说,这是相当痛苦的一件事情,所以,我不得不找找有没有简单一点的办法来搞定这个事情。我想到了上次用f

文涛的专栏 3万+

别再对着数据手册发愁了!用HFSS 2023 R2搞定ESP32-C3板载天线的阻抗匹配

本文详细介绍了如何利用HFSS 2023 R2进行ESP32-C3板载天线的阻抗匹配优化,解决实际PCB设计中常见的性能偏差问题。通过智能模型导入、科学参数扫描和量化优化流程,显著提升天线性能,适用于WIFI和蓝牙应用场景。

weixin_42523543的博客 447

C语言--第三大的数

第三大的数 给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数. 示例1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1. 示例2: 输入: [1, 2] 输出: 2 解释: 第三大的数不存在, 所以返回最大的数 2 . ...

loreal8的博客 2130

freemark标签的使用案例

这样会遇到一个问题,当数据超过3位的时候,freemarker会自动用逗号截取 格式如:2,008 如何解决呢? 1> 加.toString(),如:${(userId).toString()} 2> 加?c,如:${(userId)?c} 3> freemarker配置文件freemarker.properties加上number_format=# 判断是否为空: 1

我的世界,真实可见 797

运行codex时出现登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013) 解决方案

的本质是Windows 系统端口保留策略而非代码 bug。推荐使用方案一(调整动态端口范围),一劳永逸解决。如果你安装了 Docker Desktop 或启用了 WSL2,调整端口范围后记得检查相关服务是否正常运行。

一键难忘的博客 4152

基于模板的excel导出

产品中有很多模块需要导出excel功能,导出excel几乎都是把页面已经显示出来的数据列表导出为excel。但后台使用poi生成excel却要1个单元格1个单元格的去编写。每个模块都需要单独写导出excel的代码,导致代码里充斥了createRow,createCell,setCellValue的代码。但这不是要命的,要命的是当前台数据列表格式变了的时候...

weixin_34049948的博客 220

【时时三省】vector cast 常见错误解决/vcast常见错误解决

介绍在使用 vector cast/vcast 软件的过程中,遇到的异常问题。其它异常可以私信解决(购买专栏的前提下)。

时时三省的博客 447

[QMT量化交易小白入门]-105、震荡市最适合的策略:ETF多标的动态网格策略,回测年化收益47.81%

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写200篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 2060

Java 复杂excel报表导出

MyExcel,是一个可直接使用Html文件,或者使用内置的Freemarker、Groovy、Beetl等模板引擎Excel构建器生成的Html文件,以Html文件中的Table作为Excel模板来生成任意复杂布局的Excel的工具包,支持.xls、.xlsx格式,支持对背景色、边框、字体等进行个性化设置,支持合并单元格。 Github:https://github.com/liao...

645

YOLOv8改进,YOLOv8主干网络替换为ShuffleNetV2

ShuffleNet V2的设计原则:1.减少内存访问成本:通过优化数据传输路径,减少内存访问延迟,提高整体运算速度。2.考虑平台特性:针对不同硬件平台的特性进行优化设计,确保在目标平台上的高效运行。3.结构简洁高效:采用简洁而高效的模块设计,降低计算复杂度,同时保持或提升模型的预测准确性。下图,以四种不同计算复杂度水平下的准确性(在ImageNet验证集上的分类),速度和FLOPs的测量结果。(a, c) 为GPU结果,批量大小为8。(b, d) 为ARM结果,批量大小为1。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1564

Html2excel 1.4.1 发布,Html 转 Excel 工具包

开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> Html2excel,Java 简单...

weixin_34161032的博客 293

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

[JAVA]EXCEL工具推荐-MyExcel

MyExcel--Excel操作新方式 https://github.com/liaochong/myexcel 使用示例参考请移步:示例 简介 | Brief introduction MyExcel,是一个集导入、导出、加密Excel等多项功能的工具包。 优点 | Advantages 可生成任意复杂表格:本工具使用迭代单元格方式进行excel绘制,可生成任意复杂度excel,自...

王德封-逐浪 1759

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

poi 获取单元格坐标_操作Excel用到POI,还可以用MyExcel

项目中经常使用POI操作excel,当然poi有许多的局限性,如果项目难题,可以考虑一个新的工具MyExcel。MyExcel,是一个集导入、导出、加密Excel等多项功能的工具包。特点:可生成任意复杂表格:本工具使用迭代单元格方式进行excel绘制,可生成任意复杂度excel,自适应宽度、高度;零学习成本:使用html作为模板,学习成本几乎为零;支持常用背景色、边框、字体等样式设置:具体参见文档...

weixin_39744230的博客 709

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

MyExcel--Excel操作新方式

使用示例参考请移步:示例 简介 | Brief introduction MyExcel,是一个集导入、导出、加密Excel等多项功能的工具包。 优点 | Advantages 可生成任意复杂表格:本工具使用迭代单元格方式进行excel绘制,可生成任意复杂度excel,自适应宽度、高度; 零学习成本:使用html作为模板,学习成本几乎为零; 支持常用背景色、边框、字体等...

记事本 6392

Apache POI替代EasyExcel:复杂Excel导出的底层掌控方案

Apache POI是Java生态中处理Excel文件最成熟、最可控的底层库,其核心原理基于对Office Open XML标准的直接解析与构造,提供对单元格样式、动态合并、跨Sheet公式、流式写入及信创兼容等能力的原子级控制。相比EasyExcel等高层封装,POI牺牲部分开发便捷性,换取工程稳定性、审计合规性与深度定制能力,特别适用于金融、政务、电商等领域中高要求场景——如50万行以上稳定导出、WPS/永中Office无缝兼容、审计级日志追溯及Excel端实时公式计算。本文聚焦Apache POI在真

weixin_33984032的博客 254

【亲测免费】 MyExcel 开源项目教程

MyExcel 是一个集导入、导出、加密 Excel 等多项功能的 Java 工具包。它使用 HTML 作为模板,支持生成任意复杂度的表格,具有自适应宽度、高度,零学习成本等优点。MyExcel 支持常用背景色、边框、字体等样式设置,支持 xls、xlsx、csv 文件格式,以及公式导出等功能。 ## 项目快速启动 ### 环境准备 - Java 8 或更高版本 - Maven 3.x #...

gitblog_00293的博客 801
上一篇: Java1.8之HashMap底层链表变红黑树浅析
下一篇: BeanFactory和ApplicationContext的区别(问题驱动思考)
nacycher
博客等级 码龄8年 25粉丝 13原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值