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

news/2025/2/14 7:00:07/

​历史文章(文章累计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.ppmy.cn/news/496648.html

相关文章

使用径向基函数(RBF)神经网络对我们自己的excel数据进行分类---包括详细的python代码,RBFRegressor

文章目录 一、 径向基神经网络&#xff08;Radial Basis Function Neural Network&#xff09;是什么&#xff1f;二、径向基函数(RBF)神经网络对我们自己的excel数据进行分类---包括详细的python代码总结 一、 径向基神经网络&#xff08;Radial Basis Function Neural Networ…

Kubios HRV心率变异性分析软件

Kubios HRV是由东芬兰大学研究团队开发的一款心率变异性分析软件&#xff0c;目前在全球128个国家被1200所大学的科研人员使用。 PC端的Kubios HRV主要分免费版&#xff08;Standard&#xff09;和收费版&#xff08;Premium&#xff09;两个版本。 免费版仅支持RR间期时间序…

青龙面板—-抖音极速版(2022.08.11)

青龙面板—-抖音极速版&#xff08;2022.08.11&#xff09; 一.下载抖音极速版 二.上传脚本到青龙面板 [青龙面板—-抖音极速版&#xff08;2022.08.11&#xff09;](http://ttsqq.top/5144.html)变量格式&#xff1a;export dyjsAPP’xxx’ Cron&#xff1a; 13,43 8-18,23 …

点胶机与灌胶机的区别

1、点胶机与灌胶机的胶量和胶水的运用不同灌胶机一般是运用大胶量去灌胶&#xff0c;而点胶机是运用小胶量或是微量去点胶&#xff0c;胶水分为单组份胶水和双组份胶水&#xff0c;而运用单组份胶水的为点胶机的较多&#xff0c;运用双组份胶水的一般是灌胶机。 2、点胶机与灌胶…

自动涂胶机分类

自动涂胶机分类 由于各行业对涂胶处理和使用方法不同&#xff0c;对自动涂胶机的定义也不同。我们这里所说的自动涂胶机是指“线性自动控制涂胶机”&#xff0c;即用自动控制系统或者机器人控制系统带动涂胶头&#xff0c;依据事先设定编制好的固定轨迹运动&#xff0c;对涂胶…

【数据管理架构】OLAP 与 OLTP:有什么区别?

这些术语经常相互混淆&#xff0c;那么它们的主要区别是什么&#xff1f;您如何根据自己的情况选择合适的术语&#xff1f; 我们生活在一个数据驱动的时代&#xff0c;使用数据做出更明智决策并更快响应不断变化的需求的组织更有可能脱颖而出。您可以在新的服务产品&#xff08…

awk常用用法详解

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

怎样恢复华为计算机,华为电脑一键还原怎么操作详细教程

当电脑系统出现了错误导致系统崩溃时&#xff0c;我们一般都会通过重装系统或系统还原来解决上述问题。重装系统对于一些初级电脑用户来说操作起来可能比较困难&#xff0c;针对这种情况华为笔记本电脑上设置了一个一键恢复出厂功能&#xff0c;可以很轻松的将系统进行还原&…