日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Word文档生成

發布時間:2025/3/17 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Word文档生成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
非常多的時候,都需要在程序當中生成一些文檔,這些文檔可能是csv,word,pdf,PPT,xls等文件格式。??生成csv還是比較簡單的,但是要生成word,excel就麻煩多了。
當然,Tiny框架也面臨這個問題,如何才能幫助開發人員快速生成這些文檔呢?
一般來說,現在用java生成Word有如下方式:
POI,iText,當然還有Xml形式。
對于采用POI,iText來說,要生成復雜的Doc文件,其實并不容易。而采用Xml結構生成,去把一個文檔生成xml文件,看看里面的內容,估計也會是滿頭是汗。
Tiny構建者,認為,生成Doc,Xls,PDF等文檔類型是管理系統繞不過去的坑,那既然沒有辦法繞過,那就是說無論如何都要過了?
隨便百度Google一下,發現這種方案其實許多人已經做過了,比如在下面的連接中,作者已經有了良好的實踐:http://developer.51cto.com/art/201106/270815.htm
本文的解決方案,與之存在類似之處--都是采用模板語言結合xml來生成xml格式Word文件,但是實現模式還是不一樣的,本文提供的方案更具有通用性、易用性,易用到像做網站一樣生成Word文檔。

為此,Tiny框架對于生成文本格式文件的內容進行了抽象,只要是生成文本格式的文件,都可以通過Tiny框架的文檔生成框架進行擴展,使得開發人員可以方便快捷的生成文本類型的文檔。
由于Office文檔已經有了xml格式的存儲方式,由于pdf可以通過xml生成,因此,最常用的office文檔和pdf文檔都可以通過本框架快速生成,當然,有一些基礎性工作還是要自己做的(偷偷的透露一下:常用的模板框架中都會包含的)。
角色分配?? 文檔生成框架擴展 文檔生成框架擴展是非常簡單的,你不用編寫代碼,只要編寫配置文件即可
1.編寫Bean文件

1
2
3
4
5
6
7
<bean id="docTemplateFileProcessor" scope="singleton" class="org.tinygroup.docgen.fileresolver.TemplateFileProcessor">
? ? <property name="fileExtName" value=".doctemplate"></property>
? ? <property name="documentType" value="doc"></property>
< /bean>
注意:
fileExtName屬性是指模板文件的擴展名
documentType屬性是指文檔類型


宏文件編寫
文檔生成框架本身并不能直接生成各種文檔,需要高級開發人員進行模板編寫。
這部分主要是定義Velocity模板文件了。
比如:定義下面的宏,可以用來生成word文件中的鏈接

1
2
3
4
#macro(link $url)
$bodyContent
< /w:hlink
#end


文檔模板編寫 普通開發利用高級開發人員編寫的宏文件,就可以簡單快捷的編寫文檔模板了。
比如下面的代碼就可以生成新浪網的鏈接地址:
#link("http://www.sina.com.cn/") #p("新浪網") #end
是不是不用知道Word文檔格式,也可以方便快速的編寫Word文檔了?
示例 編寫下面的模板文件
#@wordDocument()#@body()#h("Tiny Framework" 1)#h("Tiny Framework" 2)#h("Tiny Framework" 3)#h("Tiny Framework" 4)#h("Tiny Framework" 5)#end#end
編寫下面的java代碼:
DocumentGeneraterManager manager = SpringUtil.getBean(DocumentGeneraterManager.MANAGER_BEAN_NAME);File file=new File("test.xml");FileOutputStream outputStream=new FileOutputStream(file);manager.getFileGenerater("doc").generate("/test.docpage", new ContextImpl(), new OutputStreamWriter(outputStream));outputStream.close();
運行用Word打開生成的test.xml的結果:

155452_E5li_1245989.jpg (46.96 KB, 下載次數: 0)

下載附件

2015-5-27 21:08 上傳

?
當然,框架中已經定義了Word中大量的元素,也就是說大部分都可以像上面的方式來添加表格,樣式,等等元素。再結合上各種數據獲取,生成各種類型文檔都是手到捻來。在Tiny框架就有大量的運行時數據,比如:服務定義,組件定義,插件定義等等,都是直接通過文檔生成框架即時生成,保證了文檔的可用性及有效性。
當然,不僅僅可以且來生成Word,所有以文本格式的存儲的文件都可以通過上述方式生成。

轉載于:https://blog.51cto.com/j2eetop/1665486

總結

以上是生活随笔為你收集整理的Word文档生成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。