这两天由于工做的缘由,须要根据模板生成word文档,由于需求有些特殊,为了选择最好的解决方案,因此尝试了不少种类库,今天分享一下。java
推荐指数:⭐git
由于以前作过EXCEL的解析,因此我首选就是POI,然而通过调查以后发现POI解析Word文档就是个坑,很是难用不说,有些功能还不支持。试验一番以后不得不放弃了。github
推荐指数:⭐⭐⭐apache
发现POI很差用以后同事推荐给我了一种基于POI的模板类库,能够根据模板自动生成文档。语法简单,并且模板能够定制。由于此次的需求比较特殊,因此有些地方不太知足项目的须要。若是你的项目是那种从头搭建的项目的话,建议使用这个类库。小程序
推荐指数:⭐⭐⭐工具
FreeMarker是一种Html模板引擎工具,由于word文档也是一种固定格式的XML文档,因此可使用FreeMarker来设定模板,并根据模板生成。缺点是全部doc模板都必须修改成符合标准的ftl模板文档,工程量较大。测试
推荐指数:⭐⭐网站
JACOB是一个Java-COM的中间件,经过这个组件你能够在Java应用程序中调用COM组件和Win32程序库。然而缺点也比较明显,就是只能在Windows环境下使用,若是是那种须要部署到Linux环境的项目就不适用了。我没有写测试小程序,不知道具体使用起来会是怎么样。.net
推荐指数:⭐⭐⭐⭐中间件
这个是国内一个提供根据模板生成文档的免费云服务网站。由于项目有一些涉密的文档,因此不能使用这种公开的云服务。联系了服务方以后发现他们有一个企业版的能够部署在本地。这个服务调用方便,类库简单,很是适合小型项目。大型项目也能够考虑购买付费服务。
推荐指数:⭐⭐⭐⭐⭐
受云服务的启发,我想到未必非要在Java中解决问题,因而想到以前写过一个Node.js的项目,其中涉及到office文档的生成,能够利用Node.js开发一个Restful的接口,将全部模板放在这个项目里,调用接口实现模板生成。Docxtemplater相对来说是一个很好的Node.js office中间件。
推荐指数:⭐⭐
这个工具是我在寻找解决方案的过程当中找到的一个五年前的类库了,做者彷佛还在回答问题,但也有一年没有活动了。这个项目目测是很是老的项目了,连现成的jar包也没有。不是很推荐,可是若是前面几个都不符合你的须要的话,不要放弃。