java使用poi-tl模版引擎导出word之列表循环数据渲染

目录

  • 1.模版制作
  • 2.开启spring表达式
  • 3.编写关键代码接口
  • 4. 导出结果

poi-tl模版引擎中,如果区块对的值是一个非空集合,区块中的文档元素会被迭代渲染一次或者N次,这取决于集合的大小,类似于foreach语法。

1.模版制作

在静态资源目录下resources/static/templates新建exportWord.docx,编写以下模版内容:

在这里插入图片描述

2.开启spring表达式

(1)引入依赖

<dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>5.3.18</version>
</dependency>

(2)代码中开启表达式

ConfigureBuilder builder = Configure.builder();
// 开启spring表达式
builder.useSpringEL();

3.编写关键代码接口

@GetMapping("/exportWord")
public void exportWord(HttpServletResponse response) throws FileNotFoundException {//存放数据,也就是填充在word里面的值Map<String, Object> params = new HashMap<>();params.put("title","测试使用poi-tl模版导出word");List<Map<String, Object>> list = new ArrayList<>();Map<String, Object> map = new HashMap<>();map.put("a","测试");map.put("b","米");map.put("c","201312");list.add(map);Map<String, Object> map1 = new HashMap<>();map1.put("a","测试2");map1.put("b","千米");map1.put("c","2012312");list.add(map1);params.put("list",list);ConfigureBuilder builder = Configure.builder();// 开启spring表达式builder.useSpringEL();// 或模板在静态资源的相对路径File rootFile = new File((ResourceUtils.getURL("classpath:").getPath()));File templateFile = new File(rootFile, "/static/templates/exportWord.docx");//jar包获取不到文件路径`//URLDecoder.decode() 解决获取中文名称文件路径乱码String templatePath = URLDecoder.decode(templateFile.getPath());//生成文件名String fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + "_" + System.currentTimeMillis();// 导出woldtry {// 导出Word文档为文件XWPFTemplate template = XWPFTemplate.compile(templatePath,builder.build()).render(params);// 将导出的Word文件转换为流response.setContentType("application/octet-stream");response.setHeader("Content-disposition","attachment;filename=\""+fileName+".docx"+"\"");// HttpServletResponse responseOutputStream out = response.getOutputStream();BufferedOutputStream bos = new BufferedOutputStream(out);template.write(bos);bos.flush();out.flush();// 最后不要忘记关闭这些流。PoitlIOUtils.closeQuietlyMulti(template, bos, out);} catch (Exception e) {System.out.println("导出Word文档时出现异常:" + e.getMessage());}
}

4. 导出结果

在这里插入图片描述

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

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

相关文章

MySQL 速记SQL语句(SQL语句学习)

一、DDL DDL是Data Definition Language&#xff08;数据定义语言&#xff09;的缩写&#xff0c;它是SQL语言的一部分&#xff0c;主要用于定义数据库结构。DDL语句被数据库系统用来创建、修改或删除数据库对象&#xff0c;如数据库、表、索引、视图等。 #查询所有数据库 sh…

[ACM独立出版]2024年虚拟现实、图像和信号处理国际学术会议(ICVISP 2024)

[ACM独立出版]2024年虚拟现实、图像和信号处理国际学术会议&#xff08;ICVISP 2024&#xff09; 2024 International Conference on Virtual Reality, Image and Signal Processing 最新消息ICVISP 2024-已通过ACM出版申请投稿免费参会&#xff0c;口头汇报或海报展示(可获得…

品牌推广的要素有哪些?探寻最佳实践方法

作为一个手工酸奶品牌的创始人&#xff0c;目前全国复制了100多家门店。我来和大家分享下品牌推广的基本要素&#xff0c;以及最佳实践方法&#xff01; 一、品牌推广基本要素 1、目标市场分析 品牌推广的第一步就是明确目标市场。先了解目标受众的年龄、性别、消费习惯、有…

道可云元宇宙每日资讯|2024全球数字经济大会元宇宙创新发展论坛

道可云元宇宙每日简报&#xff08;2024年7月10日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 北京&#xff1a;支持超高清视听与元宇宙融合创新应用 7月8日&#xff0c;北京市广播电视局印发《北京市支持超高清视听产业发展项目管理办法&#xff08;2024-2026…

centos在GitHub上下载代码

1、安装git yum install -y git2、下载 git clone https://github.com/dji-sdk/Payload-SDK3、若遇到 centos 7 git clone 报错&#xff1a;fatal: unable to access解决方法&#xff1a; 3.1、 打开/etc/hosts文件&#xff1b;命令&#xff1a;sudo vim /etc/hosts 3.2、 添…

【python深度学习】通俗易懂的理解一下transformer、RNN、CNN的主要区别

在“Transformer model”诞生之前,计算机是如何进行语言翻译的。在那个时代,计算机主要使用循环神经网络(RNNs)和卷积神经网络(CNNs)这两种技术来处理语言翻译任务。 1. 通俗的解释 循环神经网络(RNNs) 想象一下你在玩耳语传话游戏,将一条消息传给旁边的人,再由他…

MFC扩展库BCGControlBar Pro v35.0 - 可视化管理主题等全新升级

BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。 我们的组件可以轻松地集成到您的应用程序中&#xff0c;并为您节省数百个开发和调试时间。 BCGControlBar专业版 v35.0已全新发布了&#xff0c;这个版本改进类Visual Studio 2022的视觉主题、增强对多个…

ASUS NUC 14 Pro+:掌中宇宙,性能无界

在这个追求多样性的斜杠时代&#xff0c;ASUS NUC 14 Pro 顺势而生&#xff0c;将浩瀚宇宙般的强大性能浓缩于方寸之间&#xff0c;它不仅是一款设备&#xff0c;更是助您探索多重身份的斜杠伙伴&#xff01; 浑然天成&#xff0c;简约而不简单 小巧的机身、简约的线条、精致的…

【电脑应用技巧】如何寻找电脑应用的安装包华为电脑、平板和手机资源交换共享

电脑的初学者可能会直接用【百度】搜索电脑应用程序的安装包&#xff0c;但是这样找到的电脑应用程序安装包经常会被加入木马或者强制捆绑一些不需要的应用装入电脑。 今天告诉大家一个得到干净电脑应用程序安装包的方法&#xff0c;就是用【联想的应用商店】。联想电脑我是一点…

哈喽GPT-4o,程序员如何通过GPT-4o提高办公效率

目录 一、编写工作汇报Prompt&#xff1a;我是一名Java开发工程师&#xff0c;请写一份工作总结&#xff0c;工作内容是一个SpringBootVue实现的图书管理系统&#xff0c;按下面的结构来撰写&#xff1a;1. 工作背景&#xff1b;2. 工作内容&#xff1b;3. 工作建议&#xff1b…

FoundationDB-学习-01-安装部署

目录 一、介绍 二、环境信息 三、下载地址 四、安装步骤 0、创建操作系统用户 1、安装路径创建 2、移动文件 3、foundationdb.conf配置 4、fdb.cluster配置 5、修改权限 6、systemd服务配置 7、system重载配置文件 8、启动服务并开机自启 9、多节点情况 10、连接…

文献解读-多组学-第十七期|《基于多组学分析和综合模型的三阴性乳腺癌腋窝淋巴结转移预测》

关键词&#xff1a;多组学分析&#xff1b;基因测序&#xff1b;多组学模型&#xff1b; 文献简介 标题&#xff08;英文&#xff09;&#xff1a;Prediction of axillary lymph node metastasis in triple-negative breast cancer by multi-omics analysis and an integrated…

【常见开源库的二次开发】基于openssl的加密与解密——openssl认识与配置(一)

一、什么是openssl&#xff1f; OpenSSL 是一个开源的软件库&#xff0c;它提供了一系列加密工具和协议&#xff0c;主要用于实现安全通信&#xff0c;如在网络上的数据传输。它支持多种加密算法&#xff0c;包括对称加密、非对称加密、散列函数、伪随机数生成器、数字签名、密…

基于vue的引入登录界面

以下是一些常见的登录页面布局&#xff1a; 1. 中心布局 - 登录表单位于页面的中心位置&#xff0c;通常包括用户名输入框、密码输入框、登录按钮等元素。页面背景简洁&#xff0c;以突出登录表单。 - 这种布局常见于大多数网站和应用&#xff0c;简洁明了&#xff0c;用户注意…

Kubernetes 为pod指定DNS

在k8s里面&#xff0c;默认创建pod会给pod默认分配一个默认的dns&#xff0c;这个dns是哪来的呢&#xff1f;可不可以改成其他的dns呢&#xff1f; 先进入到pod里面来&#xff0c;可以看到这里面默认设置的DNS服务器&#xff0c;这个服务器地址为10.96.0.10。这个地址是k8s自动…

RFID智能锁控系统在物流安全运输中的应用与效益分析

一、物流锁控系统现状与挑战 1.1 传统锁控系统的局限性 安全性不足&#xff1a;机械锁容易被撬开或钥匙被复制&#xff0c;导致货物在运输过程中面临被盗风险。 无法实时追踪&#xff1a;一旦货物离开发货点&#xff0c;物流公司无法实时监控货物状态&#xff0c;增加了货物…

数据库正则表达式在实际工作中的使用

regexp_like regexp_like 和 not like 都可以用来匹配字符串&#xff0c;但它们在使用方式和功能上有一些关键的区别&#xff1a; regexp_like 功能&#xff1a;用于正则表达式匹配&#xff0c;可以进行复杂的模式匹配。 灵活性&#xff1a;支持正则表达式语法&#xff0c;…

【前端】包管理器:npm、Yarn 和 pnpm 的全面比较

前端开发中的包管理器&#xff1a;npm、Yarn 和 pnpm 的全面比较 在现代前端开发中&#xff0c;包管理器是开发者必不可少的工具。它们不仅能帮我们管理项目的依赖&#xff0c;还能极大地提高开发效率。本文将详细介绍三种主流的前端包管理器&#xff1a;npm、Yarn 和 pnpm&am…

4DRadarSLAM算法复现

文章目录 4D毫米波雷达slam安装依赖包安装依赖的ROS功能包源码编译下载数据集程序运行效果概览4D毫米波雷达slam 4D毫米波雷达SLAM(Simultaneous Localization and Mapping,即同时定位与建图)是一种利用4D毫米波雷达传感器来进行环境感知并构建地图的技术。4D毫米波雷达不仅…

软考五个高级科目怎么选?如何一口气拿下证书!

软考高级包括&#xff1a; 信息系统项目管理师、系统分析师、系统架构设计师、网络规划设计师、系统规划与管理师等五个考试。 一、各科特点&#xff1a; 信息系统项目管理师 特点&#xff1a;主要从事信息系统项目管理方面的工作&#xff0c;要求掌握项目管理的知识体系和实…