這兩天由於工做的緣由,須要根據模板生成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包也沒有。不是很推薦,可是若是前面幾個都不符合你的須要的話,不要放棄。