Java之自定义模板导出为Word实例

来源:互联网 发布:苹果mac常用软件 编辑:程序博客网 时间:2024/06/05 17:54

Java之自定义模板导出为Word实例


本文利用Freemarker按照自定义模板.ftl文件生成相应的word文件,效果如下:


 



操作步骤:


首先下载jar包 


下一步新建一个word文档,注意:模板里面包含中文的话,一定记得改编码方式,楼主在这坑了很长时间,后面运行代码的时候一直报错,说ftl格式不正确。

 






在word中输入以下内容:




Word写好后另存为template.xml文件,同样注意编码问题,输出编码为utf-8。注意这步是另存为!!!!!!!


 



然后重命名template.xml文件为template.ftl文件


 至此模板文件就建好啦。


Java代码如下:

public class DocUtils {public static void main(String[] args) throws IOException, TemplateException {      // 要填充的数据, 注意map的key要和word中${xxx}的xxx一致        Map<String,String> dataMap = new HashMap<String,String>();        dataMap.put("username", "Mike");        dataMap.put("sex", "男");        dataMap.put("age", "23");        dataMap.put("address", "uestc");                    //Configuration用于读取ftl文件        Configuration configuration = new Configuration();        configuration.setDefaultEncoding("utf-8");               //configuration.setClassForTemplateLoading(this.getClass(),""); //指定路径的第一种方式(根据某个类的相对路径指定)     configuration.setDirectoryForTemplateLoading(new File("D:/a")); //指定路径的第二种方式,我的路径是D:\a\template.ftl          File outFile = new File("D:\\a\\Mike.doc");// 输出文档路径及名称       Template t =  configuration.getTemplate("template.ftl","utf-8");//以utf-8的编码读取ftl文件         Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"),10240);       t.process(dataMap, out);       out.close(); }}


点击运行就大功告成啦~~~~




0 0
原创粉丝点击