java: 通过xml模板转成word文件
作者:小教学发布时间:2023-10-02分类:程序开发学习浏览:72
导读:依赖:freemarker<dependency><groupId>org.freemarker</g...
依赖: freemarker
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version> <!-- 请根据您的需求选择最新版本 -->
</dependency>
代码展示
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
/**
* @Description:
* @Author zhou
* @Date 2023/9/26 - 13:19
*/
public class TestXMLtoWord {
public static void main(String[] args) {
Map<String, Object> dataModel = getMapData();
try {
// 创建FreeMarker配置
Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);
// 设置模板文件的位置
cfg.setClassForTemplateLoading(TestXMLtoWord.class, "/templates");
// 获取模板
Template template = cfg.getTemplate("name.xml");
// 使用FreeMarker渲染模板并将内容添加到Word文档
StringWriter writer = new StringWriter();
// 替换关键字
template.process(dataModel, writer);
// .doc .docx .xml 等文件都可以,只需要修改后缀
try (FileWriter fileWriter = new FileWriter("output.doc")) {
fileWriter.write(writer.toString());
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Word文档已生成成功!");
} catch (IOException | TemplateException e) {
e.printStackTrace();
}
}
// 创建数据模型
public static Map<String, Object> getMapData() {
Map<String, Object> dataModel = new HashMap<>();
dataModel.put("CREATE_MAN", "zhou");
dataModel.put("CHECK_MAN", "zhou");
dataModel.put("d1_operate_time_1", "test1");
dataModel.put("d1_operate_time_2", "test2");
dataModel.put("d1_operate_time_3", "test3");
dataModel.put("d1_file_num_last_1", "tes1232t");
dataModel.put("d1_file_num_last_2", "tes321t");
dataModel.put("d1_file_num_last_3", "t111est");
dataModel.put("d1_file_size_last_1", "tes222t");
dataModel.put("d1_file_size_last_2", "te44st");
dataModel.put("d1_file_size_last_3", "te33st");
dataModel.put("d1_file_num_1", "te11st");
dataModel.put("d1_file_num_2", "tes22t");
dataModel.put("d1_file_num_3", "te33st");
dataModel.put("d1_file_size_1", "te666st");
dataModel.put("d1_file_size_2", "t222st");
dataModel.put("d1_file_size_3", "te111st");
return dataModel;
}
}
文件展示
name.xml:word另存为xml文件
位置:\src\main\resources\templates
output.doc: .doc .docx .xml 等文件都可以,只需要修改后缀
- 上一篇:JUnit介绍
- 下一篇:Three.js加载360全景图片/视频
- 程序开发学习排行
-
- 1鸿蒙HarmonyOS:Web组件网页白屏检测
- 2HTTPS协议是安全传输,为啥还要再加密?
- 3HarmonyOS鸿蒙应用开发——数据持久化Preferences
- 4记解决MaterialButton背景颜色与设置值不同
- 5鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 6鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 7[Android][NDK][Cmake]一文搞懂Android项目中的Cmake
- 8鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 9Android广播如何解决Sending non-protected broadcast问题
- 最近发表
-
- WooCommerce最好的WordPress常用插件下载博客插件模块的相关产品
- 羊驼机器人最好的WordPress常用插件下载博客插件模块
- IP信息记录器最好的WordPress常用插件下载博客插件模块
- Linkly for WooCommerce最好的WordPress常用插件下载博客插件模块
- 元素聚合器Forms最好的WordPress常用插件下载博客插件模块
- Promaker Chat 最好的WordPress通用插件下载 博客插件模块
- 自动更新发布日期最好的WordPress常用插件下载博客插件模块
- WordPress官方最好的获取回复WordPress常用插件下载博客插件模块
- Img to rss最好的wordpress常用插件下载博客插件模块
- WPMozo为Elementor最好的WordPress常用插件下载博客插件模块添加精简版