Java 使用模板生成 Word 文件 |
您所在的位置:网站首页 › freemarker生成html › Java 使用模板生成 Word 文件 |
Java项目引入 Freemarker 插件自行完成。 步骤如下: 、编写 Word 模板,并将模板中要用代码动态生成数据用 Freemarker 变量取代,即${变量名},如${username};、把该 word 文档 另存为 xml 文件(格式选择 Word XML,注意是另存为,不是改扩展名为 xml),然后再改扩展名为 ftl;、用编辑软件打开最后的 ftl 文件,并用查找功能查找第一步中定义的变量名,如:username,就会发现 Word 软件在将 Word 转为 xml 过程中,在${username}之前插入了很过多余的字符(通常是 Word 中带有的格式),将第一步中定义的所有变量名全部还原为${变量名} 的格式,即:删除${username} 插入的多余字符。这步特别重要,直接决定了后面能够正确将数据落到模板中。如下图:${username} 之间被插入了很多的格式字符,所以需要将黄线部分的字符串删除。4、执行代码,将模板中的变量用数据填充进去 import java.io.BufferedWriter;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.HashMap;import java.util.Map;import freemarker.template.Configuration;import freemarker.template.Template;public class FreeMarkerUtils { public static void main(String[] args) { try { Map dataMap = new HashMap(); dataMap.put("clinicName", "爱齿口腔(滨海门诊部)"); dataMap.put("username", "张三"); dataMap.put("phone", "23456789876"); dataMap.put("IDNo", "130803299911211789"); dataMap.put("gender", "男"); dataMap.put("birthday", "1998-11-21"); dataMap.put("RightUp", "右上1"); dataMap.put("LeftUp", "左上1"); dataMap.put("RightDown", "右下1"); dataMap.put("LeftDown", "左上1"); dataMap.put("opearationDate", "2019-11-01"); dataMap.put("amountDaXie", "壹佰伍拾元整"); dataMap.put("amount", "150.00"); dataMap.put("currentDate", "2019年11月01日"); dataMap.put("currentDate", "2019年11月01日"); Configuration configuration = new Configuration(); configuration.setDefaultEncoding("utf-8"); //指定模板路径的第二种方式,我的路径是D:/ 还有其他方式 configuration.setDirectoryForTemplateLoading(new File("C:/Users/user/Desktop")); // 输出文档路径及名称 File outFile = new File("D:/test.doc"); //以utf-8的编码读取ftl文件 Template t = configuration.getTemplate("6_种植牙手术意外投保单(4)-2003-3.ftl","utf-8"); Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"),10240); t.process(dataMap, out); out.close(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } }}参考: https://www.cnblogs.com/xinde123/p/8581963.html https://www.cnblogs.com/cnsdhzzl/p/10644597.html https://blog.csdn.net/ai_0922/article/details/82773466 https://www.cnblogs.com/qq742655/p/9003759.html 原文链接: https://www.cnblogs.com/poterliu/p/11774854.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |