沫沫金:使用Java模版引擎FreeMarker生成复杂的Word文档
2012-03-16 11:06
639 查看
目前Java操作office文档常用的有以下几种方案(POI、iText、jacob这三种)
以上三种方案优缺点分析如下:
Jacod是使用dll文件,使用它项目只能在windows系统中使用。但是大家知道java项目的特性是良好的可移植性,所以不建议使用。而且它处理文档的效率不是很好。
POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个20多页,嵌套很多表格和图像的word文档靠POI来写代码输出,对程序员来说比去山西挖煤还惨,况且文档格式还经常变化。
iText操作Excel还行。对于复杂的大量的word也是噩梦。
(直接通过JSP输出样式基本不达标,而且要打印出来就更是惨不忍睹。)
新方案:Word从2003开始支持XML格式,用XML来做就很简单了。
大致分以下三个步骤:
一、先用office2003或更高版本编辑好word模版,然后另存为xml文件
二、使用FirstObject XML Editor将xml翻译为FreeMarker模板
三、最后用java来解析FreeMarker模板并输出Doc。
经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样
看看实际效果
首先用office【版本要2003以上,以下的不支持xml格式】编辑文档的样式,图中下划线的部分就是要输出的部分:
将编辑好的文档另存为XML
再用Firstobject free XML editor将xml中我们需要填数据的地方打上FreeMarker标记
最后生成的文档样式
提示:
要使用这个新方案,你必须了解FreeMarker这个很优秀的Java模版引擎。官方中文API下载请点击这里中文版手册(PDF)
Firstobject free XML editor工具下载,等你给xml添加好Freemarker标签后直接将xml文件后缀修改为ftl文件。(ftl文件为Freemarker模版文件)
Freemarker下载
相关连接:
MyEclipse集成FreeMarker教程
本教程的源码
联系方式(email:zl0828@yeah.net qq搜索-'沫沫金')本文出自 “沫沫金的IT心得与技巧” 博客,转载请与作者联系!
以上三种方案优缺点分析如下:
Jacod是使用dll文件,使用它项目只能在windows系统中使用。但是大家知道java项目的特性是良好的可移植性,所以不建议使用。而且它处理文档的效率不是很好。
POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个20多页,嵌套很多表格和图像的word文档靠POI来写代码输出,对程序员来说比去山西挖煤还惨,况且文档格式还经常变化。
iText操作Excel还行。对于复杂的大量的word也是噩梦。
(直接通过JSP输出样式基本不达标,而且要打印出来就更是惨不忍睹。)
新方案:Word从2003开始支持XML格式,用XML来做就很简单了。
大致分以下三个步骤:
一、先用office2003或更高版本编辑好word模版,然后另存为xml文件
二、使用FirstObject XML Editor将xml翻译为FreeMarker模板
三、最后用java来解析FreeMarker模板并输出Doc。
经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样
看看实际效果
首先用office【版本要2003以上,以下的不支持xml格式】编辑文档的样式,图中下划线的部分就是要输出的部分:
将编辑好的文档另存为XML
再用Firstobject free XML editor将xml中我们需要填数据的地方打上FreeMarker标记
最后生成的文档样式
提示:
要使用这个新方案,你必须了解FreeMarker这个很优秀的Java模版引擎。官方中文API下载请点击这里中文版手册(PDF)
Firstobject free XML editor工具下载,等你给xml添加好Freemarker标签后直接将xml文件后缀修改为ftl文件。(ftl文件为Freemarker模版文件)
Freemarker下载
相关连接:
MyEclipse集成FreeMarker教程
本教程的源码
联系方式(email:zl0828@yeah.net qq搜索-'沫沫金')本文出自 “沫沫金的IT心得与技巧” 博客,转载请与作者联系!
相关文章推荐
- Java Web项目中使用Freemarker模版生成Word文档
- Java项目中使用Freemarker生成Word文档
- Java Web项目中使用Freemarker生成Word文档
- java使用freemarker生成word文档
- 如何能让Java生成复杂Word文档
- java生成复杂word文档的完美解决方案
- java通过freemarker生成word文档
- Java使用freeMarker生成Word
- 使用java生成word文档
- Java使用freemarker导出word文档
- 利用Freemarker生成word的使用(java)
- Java Web项目中使用Freemarker生成Word文档
- Java Web项目中使用Freemarker生成Word文档
- 使用FreeMarker生成word文档
- java 使用Java生成word文档
- Java Web项目中使用Freemarker生成Word文档
- Java用Freemarker 生成word文档
- 如何能让Java生成复杂Word文档
- 如何能让Java生成复杂Word文档
- 使用Word编辑生成freemarker 模版.ftl文件