模板文件导出Excel【EasyPoi实战系列】- 第478篇

news2024/10/7 10:16:55

​历史文章(文章累计470+)

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

《国内最全的Spring Boot系列之六》

【EasyPoi实战系列】Spring Boot使用EasyPoi动态控制导出的列 - 第471篇

100万数据导出,居然爆炸了OutOfMemoryError?【EasyPoi实战系列】- 第472篇

导出下拉列表的两种小技巧【EasyPoi实战系列】- 第473篇

数据脱敏/换行/枚举的处理【EasyPoi实战系列】- 第474篇

悟纤:师傅,我发现一个挺麻烦的问题。

师傅:怎么说?

悟纤:就是这个很多时候,这个Excel的样式是很复杂的,用代码生成Excel的方式对于处理比较复杂的样式,就有点爱莫能助。

师傅:这个时候,使用模板导出的方式就很有必要了,定义好一个模板,然后使用类似el表达的方式指定单元格的位置,这样样式就可以在模板文件进行编辑了。

悟纤:如果可以这么实现真的是再好不过了,师傅我已经按耐不住了,赶紧带我飞。

师傅:扶好把手,准备启程。

导读

Hi,大家好,我是悟纤

我就是我,不一样的烟火。我就是我,与众不同的小苹果。

模板是处理复杂Excel的简单方法,复杂的Excel样式,可以用Excel直接编辑,完美的避开了代码编写样式的雷区,同时指令的支持,也提了模板的有效性。

说明:本节的例子的导出实体类是基于前面的章节的实体类进行使用的,所以看的有点蒙圈的小伙伴可以查看前面的文章:

👇🏻👇🏻👇🏻EasyPoi实战系列

01.《【EasyPoi实战系列】Spring Boot集成EasyPoi - 第467篇》

02.《【EasyPoi实战系列】Spring Boot使用EasyPoi的注解让表格更漂亮以及图片的导出 - 第468篇》

03.《【EasyPoi实战系列】Spring Boot使用EasyPoi实现一对多的导出 - 第469篇》

04.《【EasyPoi实战系列】Spring Boot使用EasyPoi实现多Sheet导出 - 第470篇》

05.《【EasyPoi实战系列】Spring Boot使用EasyPoi动态控制导出的列 - 第471篇》

06.《100万数据导出,居然爆炸了OutOfMemoryError?【EasyPoi实战系列】- 第472篇》

07.《导出下拉列表的两种小技巧【EasyPoi实战系列】- 第473篇》

08.《数据脱敏/换行/枚举的处理【EasyPoi实战系列】- 第474篇》

一、EasyPoi支持的指令

EasyPoi支持的指令以及作用,最主要的就是各种fe的用法:

· 空格分割

· 三目运算 {{test ? obj:obj2}}

· n: 表示 这个cell是数值类型 {{n:}}

· le: 代表长度{{le:()}} 在if/else 运用{{le:() > 8 ? obj1 : obj2}}

· fd: 格式化时间 {{fd:(obj;yyyy-MM-dd)}}

· fn: 格式化数字 {{fn:(obj;###.00)}}

· fe: 遍历数据,创建row

· !fe: 遍历数据不创建row

· $fe: 下移插入,把当前行,下面的行全部下移.size()行,然后插入

· #fe: 横向遍历

· v_fe: 横向遍历值

· !if: 删除当前列 {{!if:(test)}}

· 单引号表示常量值 ‘’ 比如’1’ 那么输出的就是 1

· &NULL& 空格

· &INDEX& 表示循环中的序号,自动添加

· ]] 换行符 多行遍历导出

· sum: 统计数据

· cal: 基础的+-X% 计算

· dict: 字典

· i18n: 国际化

二、模板基本导出

看一个常见的到处模板–专项支出用款申请书:

这里面有正常的标签以及$fe遍历,$fe遍历应该是使用最广的遍历,用来解决遍历后下面还有数据的处理方式,我们要生成的是这个需要一些list集合和一些单纯的数据。

fe的写法 fe标志 冒号 list数据 单个元素数据(默认t,可以不写) 第一个元素

{{$fe: maplist t t.id }}

看下数据代码,主要是构造数据TemplateExportParams是主要的参数数据:

/** * 模板导出 * /demoTemplate/exportExcel * @param response */@GetMapping("/exportExcel")public void exportExcel(HttpServletResponse response) throws IOException {    TemplateExportParams params = new TemplateExportParams(            "WEB-INF/doc/专项支出用款申请书_map.xls");    Map<String, Object> map = new HashMap<String, Object>();    map.put("date", "2014-12-25");//申请日期.    map.put("money", 2000000.00);//合计    map.put("upperMoney", "贰佰万");//核定金额合计(大写)    map.put("company", "悟纤科技有限公司");//申请支付单位    map.put("bureau", "财政局");//××局    map.put("person", "悟纤");//联系人    map.put("phone", "1388888****");//联系电话    List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();    for (int i = 0; i < 4; i++) {        Map<String, String> lm = new HashMap<>();        lm.put("id", i + 1 + "");        lm.put("zijin", i * 10000 + "");        lm.put("bianma", "A001");//编码        lm.put("mingcheng", "设计");//名称        lm.put("xiangmumingcheng", "EasyPoi " + i + "期");//项目名称        lm.put("quancheng", "开源项目");//全称        lm.put("sqje", i * 10000 + "");//申请金额        lm.put("hdje", i * 10000 + "");//核定金额        listMap.add(lm);    }    map.put("maplist", listMap);    Workbook workbook = ExcelExportUtil.exportExcel(params, map);    ExcelUtil.downLoadExcel("专项支出用款申请书.xlsx",response,workbook);}

说明:要准备模板文件《专项支出用款申请书_map.xls》

输出的效果:

我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。

à悟纤学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

ShardingJDBC分库分表:http://t.cn/A6ZarrqS

分布式事务解决方案:http://t.cn/A6ZaBnIr

JVM内存模型调优实战:http://t.cn/A6wWMVqG

Spring入门到精通:https://t.cn/A6bFcDh4

大话设计模式之爱你:https://dwz.cn/wqO0MAy7

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

慎投!6月有3本SCIE期刊被剔除!(附SCI/SSCI目录下载)

期刊动态&#xff1a;2023年6月SCI、SSCI期刊目录更新 2023年6月20日&#xff0c;科睿唯安更新了WOS期刊目录&#xff0c;继上次5月WOS期刊目录剔除4本SCIE&SSCI期刊之后&#xff0c;此次6月更新又有3本SCIE期刊发生变动&#xff0c;其中有1本期刊被踢出SCIE数据库&#x…

Python基础(18)——Python推导式

Python基础&#xff08;18&#xff09;——Python推导式 文章目录 Python基础&#xff08;18&#xff09;——Python推导式目标一. 列表推导式1.1 快速体验1.2 带if的列表推导式1.3 多个for循环实现列表推导式 二. 字典推导式1 快速体验 三. 集合推导式四. 总结 目标 列表推导…

PowerShell系列(七)PowerShell当中的Provider介绍

往期回顾PowerShell系列&#xff08;一&#xff09;&#xff1a;PowerShell介绍和cmd命令行的区别 PowerShell系列&#xff08;二&#xff09;&#xff1a;PowerShell和Python之间的差异介绍 PowerShell系列&#xff08;三&#xff09;&#xff1a;PowerShell发展历程梳理 P…

管理类联考——写作——素材篇——论说文——写作素材05——志篇:奉献·公益06——制篇:原则·准则

管理类专业学位联考 (写作能力) 论说文素材 05——志篇&#xff1a;奉献公益 论文说材料: 自己活着&#xff0c;就是为了使别人过得更美好。 ——雷锋 一&#xff1a;道理论据 成人善事&#xff0c;其功更倍&#xff1b;动人善愿&#xff0c;其量无涯。——陈龙正 凡人为善…

谷歌tryOnDiffusion实现了高度逼真的虚拟试穿;ChatGPT 或将推出 AI 应用商店

&#x1f989; AI新闻 &#x1f680; ChatGPT Plus 用户已支持联网和插件功能&#xff0c;OpenAI 或将推出 AI 应用商店 摘要&#xff1a;OpenAI 宣布 ChatGPT Plus 用户已支持联网和插件功能。据外媒 The Information 报道&#xff0c;OpenAI 正考虑为 AI 软件创建一个应用商…

postgresql snapshot快照源码解析, 快照内容生成规则, 可见性是这样判断的

postgresql snapshot快照源码解读 ​专栏内容&#xff1a;postgresql内核源码分析 个人主页&#xff1a;我的主页 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 概述 本文主要介绍数据库事务快照&#xff0c;分别从源码实…

VisualSVN Server 5.1.5 Crack

特征 VisualSVN Server 提供以下主要功能。 Active Directory 单点登录 允许用户使用他们当前的 Active Directory 域凭据访问 VisualSVN Server。使用安全 Kerberos V5 或 NTLM 身份验证协议。支持双因素身份验证和智能卡。 多站点存储库复制 使用 VisualSVN 分布式文件系统…

【FPGA入门】第七篇、FPGA实现VGA接口驱动

目录 第一部分、实验结果 1、横的三色彩条效果 2、竖的三色彩条效果 第二部分、VGA驱动基本知识 1、VGA分辨率问题 2、VGA驱动波形 2.1、工业标准的时序波形图 2.2、比上面那张图更容易理解的图 2.3、每个区域对应的时间 2.4、不同分辨率的表格 3、VGA扫描范…

【NeRF大总结】基于NeRF的三维视觉年度进展报告

基于NeRF的三维视觉年度进展报告 清华大学&#xff1a;刘烨斌 原文链接&#xff1a;【NeRF大总结】基于NeRF的三维视觉年度进展报告–清华大学刘烨斌 (by 小样本视觉与智能) 目录 文章目录 基于NeRF的三维视觉年度进展报告01 背景介绍NeRFNeRF与三维视觉三维表征与可微渲染…

信号与系统与MATLAB应用(一)

文章目录 前言一、基本信号表示1、周期方波信号2、周期锯齿波信号3、指数函数信号4、抽样函数信号5、单位阶跃信号 二、信号的基本运算1、信号的相加和相乘2、信号的平移3、信号的反折4、信号的尺度变换&#xff08;缩展&#xff09;5、信号的微分和积分未完待续... 前言 说起…

WEBGIS系统整体设计

城市地下电力管线管理系统是一个基于B/S 架构的应用系统。系统的网络拓扑结构如 PostgreSQL 数据库以及文件系统作为数据服务器。另外&#xff0c;使用GeoServer 作为GIS 服务器&#xff0c;提供符合OpenGIS 规定的WFS 、WMS 等协议的GIS 服务。 遵循MVC 的分层设计思想&#x…

第三十四章 开发Productions - ObjectScript Productions - Defining Business Metrics

文章目录 第三十四章 开发Productions - ObjectScript Productions - Defining Business Metrics定义业务指标业务指标简介业务指标属性 单实例和多实例业务指标作为业务服务的业务指标 第三十四章 开发Productions - ObjectScript Productions - Defining Business Metrics 定…

Linux常用命令——ftpwho命令

在线Linux命令查询工具 ftpwho 显示当前每个ftp会话信息 补充说明 ftpwho命令ftp服务器套件proftpd的工作指令&#xff0c;用于显示当前每个ftp会话信息。 语法 ftpwho(选项)选项 -h&#xff1a;显示帮助信息&#xff1b; -v&#xff1a;详细模式&#xff0c;输出更多信…

SpringBoot使用Session防止表单重复提交(提供Gitee源码)

前言&#xff1a;在日常开发中&#xff0c;客户可能会存在反复点击提交按钮导致表单的重复提交&#xff0c;这个问题也是非常需要重视的&#xff0c;在本篇博客中&#xff0c;采用的是session、自定义注解和拦截器的方式来防止重复表单的重复提交&#xff0c;提高整体代码的优雅…

管理类联考——写作——素材篇——论说文——写作素材07——制篇:积累·习惯08——制篇:容让·宽厚

管理类专业学位联考 (写作能力) 论说文素材 07——制篇&#xff1a;积累习惯 论文说材料: 合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于 足下。 ——《老子》 一&#xff1a;道理论据 操千曲而后晓声&#…

HTTP代理出现503错误是什么原因,怎么处理

HTTP代理出现503错误表示代理服务器无法连接到目标服务器或无法获得对目标服务器的响应。这意味着您的请求无法被代理服务器处理&#xff0c;因此您无法访问所请求的网站或资源。 HTTP代理出现503错误的原因 HTTP代理出现503错误可能有以下原因&#xff1a; 1. 代理服务器与目…

基于Springboot+vue的网上商城购物系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

力控软件与S7-200SMART无线PPI通信

在实际系统中&#xff0c;人机界面与PLC通常不在一起&#xff0c;中心计算机一般放置在控制室&#xff0c;而PLC安装在现场车间&#xff0c;二者之间距离往往从几十米到几千米。如果布线的话&#xff0c;需要挖沟施工&#xff0c;比较麻烦&#xff0c;这种情况下比较适合采用无…

awk常用用法详解

作为运维工程师&#xff0c;使用awk来处理日常工作中的文本数据是很常见的。以下是一些常见的awk用法&#xff0c;可以帮助你更高效地处理文本数据&#xff1a; 目录 1. 查看文件的行数 2. 过滤数据 3. 统计数据 4. 格式化输出 1. 查看文件的行数 使用awk可以很快地查看文…

sed命令常用用法详解

sed 是一款流式文本编辑器&#xff0c;通常被用来编辑文本文件、数据流以及管道输入等。作为运维工程师&#xff0c;我们可以使用sed来快速处理文本数据。以下是sed的一些常见用法&#xff1a; 目录 1. 替换文本 2. 插入和删除行 3. 格式化输出 总 结&#xff1a; 1. 替换…