由于word文件的特殊性,不像excel文件格式规范。往往无法掌控好生成文档的样式,不美观不好看。
这两天根据网上学习的一个小技巧,可以方便的生成需要的word文件,而且样式完全按照自己的定义形式。主要利用freemarker的渲染引擎来实现的。
主要步骤如下:
1、编写需要导出的word文档,并且设置到需要样式格式,例如我们定义如下的模板
其中往来账项目是有很多行的,上面的途中,我已经把需要替换的文字用变量弄好了,等下模板文件还是要修改下。
2、将1中的word文档保存成xml文件,比如说demo.xml。用notepad++打开这个文件,并且格式下(下一个notepad++的xml格式化插件),没有格式化的内容绝对惨不忍睹的,trust me。哈哈!
3、修改模板文件,其实模板文件主要还差一步,就是利用<#list></#list>标签来循环生成账单的条目。<w:tr>是表格一行的开头,修改部分如下
将修改后的模板xml文件另存为demo.ftl。OK,准备工作做完了,现在开始码代码利用freemarker来生成新的文档。
4、生成demo.doc的核心代码
项目共享到csdn了,前台通过html页面中隐藏的iframe来实现无刷新下载,后台是一个简单servlet通过调用文档生成接口,写入repsonse的输出流中。(其他的java 框架如SSH,可以仿照逻辑,稍加修改即可),tomcat要用7以上。
demo项目下载地址:http://download.csdn.net/detail/stoneapple1122/9636427