Spring Boot EasyPOI 使用指定模板导出Excel

相信大家都遇到过,用户提出要把界面上的数据导成一个Excel,还得是用户指定的Excel格式,用原生的POI,需要自己去实现,相信是比较麻烦的,所以我们可以使用开源的EasyPOI.

先上个图,看看是不是大家想要的效果.

如图,是一个Demo导出模板,可以看到里面用了一些easy poi的公式,有了这个模板之后,我们只需要把需要的数据源形成后,调用接口就可以实现导出指定格式的模板了!

 一、先引入maven

        我们需要在指定模块中的pom.xml引入依赖包,如下:

<dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.4.0</version>
</dependency>

二、关键代码调用

引入依赖包之后,我们可以先看一下关键的代码使用,如下:

Map<String, Object> map = new HashMap<String, Object>();//关键数据源对象
//引入模板,注意,此处路径是相对与项目的resource目录下的,不需要自行去找到绝对路径
TemplateExportParams params = new TemplateExportParams("template/模板名称.xls"); //模板路径
params.setSheetNum(new Integer[]{0,1});//设置多个Sheet(若有多个Sheet,需要加入此代码)
Workbook workbook = ExcelExportUtil.exportExcel(params, map);//easyPOI的工具类
OutputStream out = response.getOutputStream();
workbook.write(out);
out.flush();
out.close();

如上的关键代码,也就几句而已,可以看到,我们只需要找到我们的模板路径,然后把我们的业务数据封装好传给工具类,就完成了。

三、示例

有了上述的关键代码,我们根据开头的示例图,封装成指定格式,如下:

Map<String, Object> map = new HashMap<String, Object>();//关键数据源对象//封装业务数据
Map<String,String> objInfo = new HashMap<String, Object>();
objInfo.put("Aennr","1000009");
objInfo.put("kgChr02","备注XXX");
objInfo.put("Rlkey","状态XXX");List<Map<String,String>> list = new ArrayList<>();
Map<String,String> m1= new HashMap<String, Object>();
m1.put("Ztype","变更");
m1.put("Idnrk","123");
m1.put("Zmaktx","描述");
list.add(m1);map.put("info", objInfo);
map.put("list", list);TemplateExportParams params = new TemplateExportParams("template/模板名称.xls"); //模板路径
params.setSheetNum(new Integer[]{0,1});//设置多个Sheet(若有多个Sheet,需要加入此代码)
Workbook workbook = ExcelExportUtil.exportExcel(params, map);//easyPOI的工具类
OutputStream out = response.getOutputStream();
workbook.write(out);
out.flush();
out.close();

我们可以看到,只需要往map中丢入指定内容即可显示在模板中。

EasyPOI支持很多内容,公式等,详情可查看easyPOI的官方文档.

easy poi 官方文档

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

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

相关文章

ES Kibana windows 安装

ES & Kibana windows 安装 声明&#xff1a; 本文没有实际操作过&#xff0c;只记录。具体操作请参考 ES & Kibana 安装 该文章 JDK1.8&#xff0c;最低要求&#xff01;ElasticSearch客户端&#xff0c;界面工具&#xff01; Java开发&#xff0c;ElasticSearch的版…

Newman

近期在复习Postman的基础知识&#xff0c;在小破站上跟着百里老师系统复习了一遍&#xff0c;也做了一些笔记&#xff0c;希望可以给大家一点点启发。 一&#xff09;如何安装Newman 1、下载并安装NodeJs 在官网下载NodeJs&#xff1a; Download | Node.js&#xff08;官网的…

2023.11.14 关于 Spring Boot 创建和使用

目录 Spring Boot Spring Boot 项目的创建 网页版创建 Spring Boot 项目 Spring Boot 目录说明 项目运行 Spring Boot Spring Boot 是基于 Spring 设计的一个全新的框架&#xff0c;其目的是用来简化 Spring 的应用、初始搭建、开发的整个过程Spring Boot 就是一个整合了…

初认识vue,v-for,v-if,v-bind,v-model,v-html等指令

vue 一.vue3介绍 1.为什么data是函数而不是对象? 因为vue是组件开发,组件会多次复用,data如果是对象,多次复用是共享,必须函数返回一个新的对象 1. 官网初识 Vue (发音为 /vjuː/&#xff0c;类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS …

UTC秒数与年月日时分秒的转换

闰年是指公历中每四年中有一个多出来的闰日&#xff08;2月29日&#xff09;的年份。判断一个年份是否为闰年&#xff0c;可以按照以下规则进行判断&#xff1a; 如果一个年份能够被4整除&#xff0c;但不能被100整除&#xff0c;则它是闰年。例如&#xff0c;2004年是闰年&am…

大数据爬虫分析基于Python+Django旅游大数据分析系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于Python和Django的旅游大数据分析系统是一种使用Python编程语言和Django框架开发的系统&#xff0c;用于处理和分…

DSP生成hex方法

以下使用两种方法生成的HEX文件&#xff0c;亲测可用 &#xff08;1&#xff09;万能法 不管.out文件是哪个版本CCS编译器生成的&#xff0c;只要用HEX2000.exe软件&#xff0c;翻译都可以使用。方法&#xff1a; hex2000 -romwidth 16 -memwidth 16 -i -o 20170817chuankou…

12V升压18V 1A 内置MOS 升压芯片5-35V输入内置MOS升压IC

12V升压18V 1A 内置MOS 升压芯片5-35V输入内置MOS升压IC

vnodeToString函数把vnode转为string(innerhtml)

函数 function vnodeToString(vnode) {// 如果是文本节点&#xff0c;直接返回文本内容if ([string, boolean, undefined, null, number].includes(typeof vnode)) {return vnode;}// 转换节点的属性为字符串形式const attrs Object.keys(vnode.attrs || {}).map((key) > …

数据治理入门

处理模式 模式名称常见场景常见框架批处理夜间几个小时&#xff0c;无人值守hive spark datax流处理7*24H一直运行&#xff0c;无人值守maxwell, flink, flume, kafka即席处理人机交互接口访问 web页面 数据治理的意义 数据质量低&#xff1a;数据错误&#xff0c;不准确或不…

构建坚固防线:提升网站整体安防水平的有效途径

在当今数字化时代&#xff0c;网站安全问题日益突出&#xff0c;如何提升网站整体安防水平成为网站运营者不可忽视的挑战。本文将从高防服务器与CDN的局限性出发&#xff0c;探讨提升网站安防的有效途径&#xff0c;并最终总结其必要性。 高防服务器与CDN的局限性 高防服务器的…

别再吐槽大学教材了,来看看这些网友强推的数学神作!

前言 关于大学数学教材的吐槽似乎从来没停止过。有人慨叹&#xff1a;数学教材晦涩难懂。错&#xff01;难懂&#xff0c;起码还可以读懂。数学教材你根本读不懂&#xff1b;也有人说&#xff1a;数学教材简直就是天书。 数学教材有好有坏&#xff0c;这话不假&#xff0c;但更…

二次元商业计划书PPT模版

二次元商业计划书PPT模版 共&#xff1a;9页 PPT模版&#xff1a; 百度网盘 请输入提取码&#xff1a;ax48

pytorch 模型复现

一般来说&#xff0c;设置相同的随机种子&#xff0c;在相同参数条件下&#xff0c;能使pytorch模型复现出相同的结果。随机种子的设置代码如下&#xff1a; def get_random_seed(seed):random.seed(seed)os.environ[PYTHONHASHSEED] str(seed)np.random.seed(seed)torch.man…

FPGA基础以太网

以太网数据通信 物理层&#xff1a;网线网卡&#xff08;PHY芯片&#xff09; 数据链路层&#xff1a;Mac层(数据有效传输&#xff09; 如图所示&#xff1a;FPGA中的Mac层中的MII接口负责控制PHY芯片&#xff0c;PHY芯片通过网线与PC端进行以太网数据传输。 FPGA中&#xff…

Oracle 服务器日常巡检

文章目录 1、数据库基本状况检查2、数据库相关资源使用情况检查3、检查Oracle数据库性能4、数据库服务器CPU、MEM、I/O性能5、数据库服务器安全检查 Oracle数据库的日常巡检内容包括&#xff1a; &#xff08;1&#xff09;Oracle数据库基本状况检查&#xff1b; &#xff08…

揭露 bbr 的真相

信 bbr 的伙计们&#xff0c;我又要泼冷水了&#xff0c;哈哈。 从先 bbr 的海报开始&#xff0c;相信大家也是被它唬住的&#xff1a; 注意横坐标标度是对数&#xff0c;这就凸显了优势。 把它展开到自然数坐标&#xff0c;再把其它对照画在一个坐标系里&#xff0c;在此之…

让代码变美的第二天 - 策略模式

丑陋的模样 public Fruit buyFruit(String name) {if ("苹果".equals(name)) {return new BuyApple().buy();} else if ("香蕉".equals(name)) {return new BuyBanana().buy();} else if ("西瓜".equals(name)) {// 买西瓜if (true) {// todo} e…

JVM jstat 查看内存新生代老年代回收情况,排查oom

jstat 命令 jstat - [-t] [-h] [ []] option&#xff1a;我们经常使用的选项有gc、gcutil vmid&#xff1a;java进程id interval&#xff1a;间隔时间&#xff0c;单位为毫秒 count&#xff1a;打印次数 每秒打印一次 jstat -gc 9162 1000S0C:年轻代第一个survivor的容量…

实时音视频方案汇总

若有好的方案欢迎留言讨论&#xff0c;非常感谢&#xff0c;汇总了一些&#xff0c;从市面上了解的一些低时延的端到端的方案&#xff0c;仅供参照&#xff0c;若有问题&#xff0c;也欢迎留言更正&#xff01; 方案 方案描述 时延 备注 1大华同轴高清电缆200米电缆&#xf…