java生成word文件
发布日期:2021-05-20 00:21:20 浏览次数:26 分类:精选文章

本文共 2714 字,大约阅读时间需要 9 分钟。

使用Freemarker生成Word文档详细解析

1. 引入Freemarker依赖

在项目中首先需要引入Freemarker库。可以通过以下Maven依赖方式引入:

org.freemarker
freemarker
2.3.28

2. 创建Word文件并设置变量

创建一个新的Word文档,文件中需要设置一些占位符变量,目前使用英文单词代替具体内容。例如,设置以下变量:

  • wordname
  • user
  • password
  • wordDescription
  • wordList(包含多个项目,每个项目包含paratypeempty字段)

3. 将Word文档另存为XML文件

将Word文档保存为XML格式。可以使用如图的工具或代码进行转换。转换完成后,文件扩展名应为 .xml

4. 将XML文件重命名为.ftl文件

将生成的XML文件直接重命名为.ftl,这样可以直接用于Freemarker模板的处理。无需额外修改格式即可使用。

5.开始FTL文件的修改

(jq部分需要去掉)

6.编写代码

在Java项目中使用Freemarker模板进行Word文档的生成。以下是一个简单的代码示例:

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import freemarker.template.Version;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import static java.util.stream.Collectors.toList;
public class WordTest {
@PostMapping("/createWord")
public void createWord() {
// 初始化配置
Configuration configuration = new Configuration(new Version("2.3.0"));
configuration.setDefaultEncoding("UTF-8");
// 创建参数Map
Map
dataMap = new HashMap<>();
// 初始化数据
resetData(dataMap);
// 加载模板
try {
Template template = configuration.getTemplate("demo.ftl");
// 设置输出文件
File outputfile = new File("E:/PPT模板/" + Math.random()*10000 + ".doc");
FileWriter writer = new FileWriter(outputfile, true);
// 模板处理
template.process(dataMap, writer);
writer.close();
} catch (TemplateException | IOException e) {
e.printStackTrace();
}
}
private void resetData(Map
dataMap) {
// 初始化基本参数
dataMap.put("wordname", true);
dataMap.put("user", "userName");
dataMap.put("password", "56fdh6ror8");
dataMap.put("wordDescription", "本文档供开发人员和测试人员参考。调用服务请求时,需要先传递开发者编号和开发者密钥,系统会先对编号和密钥解析验证,如果不通过,不会继续处理信息。");
// 初始化项目列表
Map
wordList = new LinkedHashMap<>();
for (int i = 0; i < 10; i++) {
Map
item = new HashMap<>();
item.put("para", i);
item.put("type", "内容" + i);
item.put("empty", "否");
wordList.put("item" + i, item);
}
dataMap.put("wordList", wordList);
}
}

模板文件位置

模板文件和方法所在类的位置为:

图片描述:图片显示模板文件位置

代码解释

  • Configuration:创建Freemarker配置对象,指定模板版本和编码。
  • Template:加载已有的模板文件。
  • dataMap:用于存储模板参数,包括用户信息、描述和项目列表等。
  • resetData:初始化数据,包括基本参数和项目列表。
  • process:将模板参数替换到生成的Word文档中。

通过以上步骤,可以实现通过Freemarker模板生成Word文档的功能。

上一篇:linux下mysql的安装
下一篇:springcloud手动打jar包详解

发表评论

最新留言

不错!
[***.144.177.141]2025年04月14日 12时26分07秒