1. freemaker怎样导出多页的word文
1、使用Word制作一个你要导出文件的格式,我是导出表格。
为此在word中制作了一个表格的样子,然后另存为Xml格式。 大家都知道XML我就不多说了,打开XML格式文件看看里面是不是乱麻麻的,不过别担心找到你要的那部分就可以了,先研究下标签的意思(这肯能要小花点时间哦,不要太急躁) 2、采用刚刚导出的XML 文件建立Freemarker模板文件 xxx。
ftl 如果你不了解FreeMarker页没有关系,查下API就可以了,它提供了类似Jsp中Jstl的标签。 Freemarker很强大,它的主要思想就是 : 模板 + 数据 ,最后给你想要的结果,内容。
它有好多的应用。可以仔细研究下,在这里就不多说。
3、有了FreeMarker模板里面的数据,在你学好Freemarker的例子后就知道怎么样把数据装到模板里了。最后用户在导出的时候,你就可以吧这个模板结合和你要写到模板中的数据一同的在后台通过流的方式write到前端了,注意在用户保存或下载的时候文件后缀存储为 。
doc 这个大家都懂得,这样用户的Word软件就可以直接打开了。 。
2. word文档转化成ftl文件
word模版,另存成test.xml ,然后修改参数 。
将test.xml改为test.ftl. 然后用网上的这段代码生成word文档。 打开时总是提示如下图(数据填入正确) public void createDoc() { //要填入模本的数据文件 Map 可以重servlet,classpath,数据库装载, //这里我们的模板是放在com.havenliu.document.template包下面 configuration.setClassForTemplateLoading(this.getClass(), ""); Template t=null; try { //test.ftl为要装载的模板 t = configuration.getTemplate("test.ftl"); } catch (IOException e) { e.printStackTrace(); } //输出文档路径及名称 File outFile = new File("D:/outFile.xml"); Writer out = null; try { out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile))); } catch (FileNotFoundException e1) { e1.printStackTrace(); } try { t.process(dataMap, out); } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { try { out.close(); //释放流 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }。 转载请注明出处51数据库 » freemakerword