java如何生成动态Word文件

一、需求:

你们项目中,是否有这么一个需求,用户在你的应用页面中,选择填充一堆数据,然后点击确定生成,系统会因你填充的数据而生成一份对应的Word文档。比如下图是一个word文档,打开后是这样的内容,使得$符号是需要动态填充的数据,也就是前面需求所说的,把用户在你页面填写数据动态录入到以下文档(模板)中,然后生成的是一个完整的数据文档。

二、开发:

这里只介绍使用思路,要完成这个,需要引用一个Jar包,aspose-words-14.11.0.jar 。大家可以在网上下载,版本不一定需要我这个。要完成这个需求的思路是,首先需要有一个模板,也就是上面那种,模板内容自定义,就算是空白也行,但$符号至少要有一个。然后使用aspose-words的接口进入数据替换,把你接口的数据填充到对应的$符号中的位置上。最后是导出生成的文档。另外模板中的$符号只是点位符,可以是任意,只要跟接口是一样的即可。

1、controller层:我用的是spring boot+swagger。@apiParam只是接口参数,若没用swagger的可以按你们其他习惯写接口参数,这里使用Map进行文件存储,Map中的key是模板中所对应的点位符号

2、service层

三、测试阶段:

代码很简单,这样就算完成了,接着我使用Swagger进行测试一下

测试调用成功,以下就是生成出来的文档。为什么内容有下划线?原因就是模板中${content}是什么格式的,他替换的文字也会是什么格式,这样在你设计模板时,可以对他进行字体,颜色等进行初始化设置。如果有对Swagger感兴趣的,可以查看我另外写的一篇《在Spring Boot中如何配置Swagger》。后续会分享Doc转PDF,还有图片合成等技术。

相关文章

Java输出语句三种实现方法

Java中常用的输出语句实现方法有以下三种:1.System.out.println():该方法可以将括号中的内容输出到控制台,并在结尾自动添加一个换行符。例如上述代码将输出字符串 "Hello Wo...

HTML+JavaSpringBoot输出内容的代码备存

仅仅是之前收集的代码备存,后续在展开代码思路:1、HTML构建一个form表单2、form表单里面动态填充需要输出的内容3、然后form表单submit提交4、ctrl层(后台)捕获内容并根据数据要求...

nohup后台启动项目,日志输出教程

1.jar包启动: [root@localhost data]# nohup java -jar ***.jar >nohup.log 2>&1 &启动之后,会在jar所在目录生成一个nu...

使用jxl将excel行转列输出

写在前面的话:最近工作时候领导让我们将如下样式的excel导入到库中刚开始以为是正常的excel导入,结果仔细一看!!字段是竖着的。正常的字段是横着的,结果这货给的数据是竖着的。反人类了!所以我们称这...

Java批量导入时,如何去除重复数据并返回结果?

概述本篇是 POI系列 的最后一篇。传送门 Java 开发中如何用 POI 优雅的导出 Excel 文件, Java 开发中如何用 POI 优雅的导入 Excel 文件.场景分析大多数开发中是不需要重...