java通过poi-tl导出word实战详细步骤
文章目录
- 与其他模版引擎对比
- 1.引入maven依赖包
- 2.新建Word文档exportWprd.docx模版
- 3.编写导出word接口代码
- 4.导出成果
poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库,你可以非常方便的加入到你的项目中,并且拥有着让人喜悦的特性。中文网站
- 可以通过word模版引擎渲染文本、图片、表格、列表数据
- 可以渲染条形图(3D条形图)、柱形图(3D柱形图)、面积图(3D面积图)、折线图(3D折线图)、雷达图、饼图(3D饼图)、散点图等图表渲染
- 可以根据条件隐藏或者显示某些文档内容(包括文本、段落、图片、表格、列表、图表等)
- 可以根据集合循环某些文档内容(包括文本、段落、图片、表格、列表、图表等)
- 支持设置书签,文档内锚点和超链接功能
- 模板即样式,同时代码也可以设置样式
- 插件化设计,在文档任何位置执行函数
与其他模版引擎对比
1.引入maven依赖包
(1)引入poi-tl包
<dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.12.2</version>
</dependency>
(2)因为poi-tl依赖于Apache POI5.2.2+,所以必须映入poi依赖包
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.2</version>
</dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.2</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>4.1.2</version>
</dependency>
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>5.2.2</version><scope>compile</scope>
</dependency>
(3)继续 引入poi-tl需要的commons-io与log4j-api依赖包(必须引入,否则会报错,报错如下)
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.11.0</version>
</dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.14.1</version>
</dependency>
不引入会导致报错,报错如下:
2.新建Word文档exportWprd.docx模版
在静态资源目录下resources/static/templates新建exportWord.docx,编写以下模版内容:
3.编写导出word接口代码
@GetMapping("/exportWord")public void exportWord(HttpServletResponse response) throws FileNotFoundException {//存放数据,也就是填充在word里面的值Map<String, Object> params = new HashMap<>();params.put("title","测试使用poi-tl模版导出word");params.put("ceshi","测试使用poi-tl模版导出word");params.put("name","张三");params.put("text","知之为知之不知为不知");//模板路径// String templatePath = "E:\\demo\\word.docx";// 或模板在静态资源的相对路径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).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.导出成果
相关文章:
java通过poi-tl导出word实战详细步骤
文章目录 与其他模版引擎对比1.引入maven依赖包2.新建Word文档exportWprd.docx模版3.编写导出word接口代码4.导出成果 poi-tl是一个基于Apache POI的Word模板引擎,也是一个免费开源的Java类库,你可以非常方便的加入到你的项目中,并且拥有着让…...
将自签证书添加到Java的可信任证书列表中
文章目录 前言将自签证书添加到Java的可信任证书列表中添加到Java的可信任证书列表中 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。 而且听说点赞的人每天的运气都不会太差,实…...
一文清晰了解CSS——简单实例
首先一个小技巧: 一定要学会的vsCode格式化整理代码的快捷键,再也不用手动调格式了-腾讯云开发者社区-腾讯云 (tencent.com) CSS选择器用于选择要应用样式的HTML元素。常见的选择器包括: 类选择器:以.开头,用于选择具…...
工程师 - 什么是XML文件
XML(eXtensible Markup Language,扩展标记语言)文件是一种使用自定义标签来定义对象及其内部数据的纯文本文件。XML设计的目的是既易于人类阅读又易于机器解析,因此它在不同系统和应用之间传输和存储数据时非常有用。 XML的主要特…...
[AI 大模型] 阿里巴巴 通义千问
文章目录 [AI 大模型] 阿里巴巴 通义千问简介模型架构发展新技术和优势示例 [AI 大模型] 阿里巴巴 通义千问 简介 阿里巴巴的 通义千问 是由阿里云开发的一款大型语言模型,旨在为用户提供高效、智能的自然语言处理服务。 通义千问能够处理多种语言输入,…...
关于无法定位程序输入点 SetDefaultDllDirectories于动态链接库KERNEL32.dll 上 解决方法
文章目录 1. ERNEL32.dll 下载2. 解决方法 👍 个人网站:【 洛秋小站】 1. ERNEL32.dll 下载 Windows 7 在安装postman时报错缺少动态链接库,提示缺少.NET Framework,这是因为本地缺少相应的dll文件导致的,这时就需要下载ERNEL32.dll文件,在解…...
轻松创建对象——简单工厂模式(Java实现)
1. 引言 大家好,又见面了!在上一篇文章中,我们通过Python示例介绍了简单工厂模式,今天,我们继续深入这个话题,用Java来实现简单工厂模式。 2. 什么是简单工厂模式 简单工厂模式(Simple Facto…...
Docker Dockerfile:构建与优化
Docker Dockerfile:构建与优化 简介 Docker 是一种广泛使用的容器化技术,它允许开发人员将应用程序及其依赖环境打包到一个可移植的容器中。Dockerfile 是 Docker 中用于自动化容器镜像构建的脚本文件。本文将详细介绍 Dockerfile 的基本结构、指令使用…...
开源项目有哪些机遇与挑战?
随着全球经济和科技环境的快速变化,开源软件项目的蓬勃发展成为了开发者社区的热门话题。越来越多的开发者和企业选择参与开源项目,以推动技术创新和实现协作共赢。本文将从开源项目的发展趋势、参与开源的经验分享以及开源项目的挑战三个方面进行探讨。…...
利用【Python】【线性规划】优化工厂生产:实现智能资源配置与利润最大化的现代解决方案
目录 1. 问题背景和描述 1.1 问题背景 1.2 问题描述 2. 数学模型的建立 2.1决策变量 2.2 目标函数 2.3 约束条件 2.4 数学模型总结 3. 使用Python解决线性规划问题 3.1 导入必要的库 3.2 定义目标函数系数 3.3 定义不等式约束矩阵和向量 3.4 定义变量的边界 非负…...
【spark】Exception in thread “main“ ExitCodeException exitCode=-1073741701
在window上运行spark程序写到本地文件的时候报错。 val rdd sc.sparkContext.parallelize(list)val arr rdd.collect()arr.foreach(println)rdd.saveAsTextFile("test1")sc.close()错误信息: zhangsan lisi wangwu Exception in thread "main" ExitCode…...
数学建模美赛经验小结
图片资料来自网络所听讲座,感谢分享!...
206. 反转链表 (Swift 版本)
题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 解题 /*** Definition for singly-linked list.* public class ListNode {* public var val: Int* public var next: ListNode?* public init() { self.val 0; self.…...
海狐外卖O2O商城系统:技术架构与运营模式的深度解析
摘要: 本文深入探讨了海狐外卖O2O商城系统的技术架构、功能特性以及运营模式。海狐外卖作为一款专注于细分市场领域的外卖餐饮解决方案,不仅拥有先进的技术栈支持,还通过丰富的系统插件和灵活的运营模式,为商户和用户提供高效、便…...
14-31 剑和诗人5 - 使用 AirLLM 和分层推理在单个 4GB GPU 上运行 LLama 3 70B
利用分层推理实现大模型语言(LLM) 大型语言模型 (LLM) 领域最近取得了显著进展,LLaMa 3 70B 等模型突破了之前认为可能实现的极限。然而,这些模型的庞大规模给其部署和实际使用带来了巨大挑战,尤其是在资源受限的设备上,例如内存…...
风景园林工程设计乙级资质业绩要求案例分析
项目数量与规模 数量要求:企业需要提供一定数量的已完成风景园林设计项目案例,这个数量可能依据具体政策而有所不同,但通常需要完成多个项目以展示设计团队的综合能力。 规模要求:项目规模需达到乙级资质标准所规定的级别&#…...
无人机之飞行规划与管理篇
无人机飞行规划与管理是确保无人机安全、高效且符合法规的运行的关键步骤。这一过程包括了对飞行任务的详细安排、航线的设定以及风险的评估和管理。下面简述这一过程的主要环节: 一、飞行目的和任务确定 在规划之初,必须明确无人机的飞行目的…...
realsense D435l+mid360标定
目录 一、安装realsense环境 二、获取realsense D450L相机内参 三、标定雷达和相机 1.下载livox_camera_calib 2.修改配置参数 3.使用fastlio生成点云 4.标定 一、安装realsense环境 git clone https://github.com/IntelRealSense/librealsense.git cd librealsense //更…...
深度学习中的正则化技术 - 数据集增强篇
序言 在机器学习与深度学习的广阔领域中,数据集的质量与规模往往是决定模型性能的关键因素之一。然而,现实世界中高质量、标注完善的数据集往往稀缺且获取成本高昂,这成为了制约算法进步的一大瓶颈。为了缓解这一问题,数据集增强…...
【Docker系列】Docker 镜像源:优化你的容器化开发流程
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
【Linux】Windows环境下配置虚拟机静态IP
当前我们虚拟机的Linux操作系统,其IP地址是通过DHCP服务获取的。 DHCP:动态获取IP地址,即每闪重启设备后都会获取一次,可能导致IP地址频繁变更 原因1:办公电脑IP地址变化无所谓,但是我们要远程连接到Linux系统&#x…...
完美解决AttributeError: ‘list‘ object has no attribute ‘shape‘的正确解决方法,亲测有效!!!
完美解决AttributeError: ‘list‘ object has no attribute ‘shape‘的正确解决方法,亲测有效!!! 亲测有效 完美解决AttributeError: ‘list‘ object has no attribute ‘shape‘的正确解决方法,亲测有效࿰…...
链接服务器“XX”的OLEDB访问接口“MSOLEDBSQL”返回了消息“登录超时已过期” 解决方法
目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 出现如下问题: 与链接服务器的测试连接失败。执行Transact-SQL 语句或批处理时发生了异常。命名管道提供程序:无法打开与SQL SERVER的链接[53]链接服务器“XX”的OLEDB访问接口“MSOLEDBSQL”返回了消息“登录超时已过期…...
【AI伦理与社会责任】讨论人工智能在隐私保护、偏见消除、自动化对就业的影响等伦理和社会问题。
人工智能(AI)作为第四次产业革命的核心技术,在推动社会进步和经济发展的同时,也引发了一系列伦理和社会问题。以下从隐私保护、偏见消除以及自动化对就业的影响三个方面进行详细讨论。 一、隐私保护 人工智能技术的广泛应用涉及…...
Qt编程技巧小知识点(1)TCP缓存区数据读取
文章目录 Qt编程技巧小知识点(1)TCP缓存区数据读取小结 Qt编程技巧小知识点(1)TCP缓存区数据读取 TCP的socket对内存进行读取(使用socket->readall())的时候输出的内容有时会进行局部倒置,其…...
vue 搭建 pinia
文章目录 环境设置存储读取数据【 storeToRefs】借助storeToRefs将store中的数据转为ref对象,方便在模板中使用【getters】当state中的数据,需要经过处理后再使用时,可以使用getters配置【$subscribe】通过 store 的 $subscribe() 方法侦听 s…...
什么是CLR
CLR,全称为Common Language Runtime,即公共语言运行时,是微软为.NET产品构建的运行环境,与Java的JVM(Java虚拟机)类似,可以看作是.NET的虚拟机。CLR的主要作用和特点如下: 主要作用…...
Spring MVC -01
Spring 的 MVC 框架 Spring的MVC框架是Spring框架的一部分,它提供了用于开发Web应用程序的一组组件和设计模式。MVC是Model-View-Controller的缩写,是一种设计模式,用于将应用程序的逻辑与用户界面分离。 在Spring的MVC框架中,Mo…...
山海鲸可视化——天地图画面和热力图
山海鲸引入天地图目前只有 iframe 的方式引入 首先我们创建一个文件夹 ——index.html ——index.js ——data.js 大家都是大佬,我就不详细介绍了,上代码都能看得懂 首先是index.html <!DOCTYPE html> <html lang"zh-CN"> <…...
Python 利用pandas处理CSV文件(DataFrame的基础用法)
前面介绍过通过Python标准库中的CSV模块处理CSV文件: Python 利用CSV模块处理数据 相比CSV模块,pandas的功能更加强大,本文将简单介绍如何通过pandas来处理CSV文件。 文章目录 一、pandas简介二、用法示例2.1 读取CSV文件2.1.1 read_csv参数…...
代理商门户网站开发/佛山seo外包平台
收集整理自网络,出处不详。 由于[GOF95]是论述软件模式的著作的第一本,也是OO设计理论著作中最流行的一本,因此有些人常常使用设计模式(Design Pattern)一词来指所有直接处理软件的架构、设计、程序实现的任何种类的模…...
c 网站开发人员工具/app推广渠道
几个新手刚刚开始接触 Git,为了维护核心仓库的“纯洁”,避免太多无关信息被误提交进仓库(再次批评一些图形化工具默认的“Select All”),采用了核心仓库只读,邮件提交 patch,审核后再提交的工作…...
网站关键词挖掘工具/网站优化员seo招聘
域用户权限|查看日志。如果委派特定用户查看DC的系统日志? 回答:根据您的描述,我对这个问题的理解是:您想指定特定的用户允许查看DC上的事件日志。 根据我的研究,要允许特定用户访问域控制器上的事件日志,…...
河南b2c商城网站/免费网站推广网站破解版
目录一 Qt安装二 Qt工具集三 C11标准四 Qt Creator 的设置五 hello world六 UI界面七 Qt 之模式、非模式、半模式对话框1 简述2 模式对话框2.1 描述2.2 效果2.3 源码3 非模式对话框3.1 描述3.2 效果3.3 源码4 半模式对话框4.1 描述4.2 效果4.3 源码5 python实现6 更多参考七 程…...
南京seo网站优化/百度公司有哪些部门
$prize array(1 > 3.5, //3.5%机率2 > 2.5,3 > 6,4 > 2,5 > 42, //42%机率6 > 36,7 > 2,8 > 4,9 > 2);//最后确认相加等于100$prizeList array(1 > array(小仙子),2 > array(5Q币),3 > array(38888游戏币),4 > array(88888游戏币),…...
官网整站优化/应用商店app下载
一、版本选择在开始部署之前,我们需要确定一下本次需要部署的是什么版本的Nginx,因为Nginx 有两个版本,一个称为Mainline版本,一个称为Stable版本,具体区别如下:1、Mainline 版本,这个版本包括最…...