java word模版填充_[转载]java向word模板中填充数据(总结)
使用過PageOffice動態(tài)生成word文檔的人都知道,PageOffice可以給word文檔的指定位置進行填充,這里我們所說的指定位置在PageOffice的專業(yè)術語里面有兩個概念,一個叫做數(shù)據(jù)區(qū)域(DataRegion),另一個叫做數(shù)據(jù)標簽(DataTag)。
一、 概念
數(shù)據(jù)區(qū)域:是Word文檔中具有 "PO_" 前綴命名的書簽所定位的文檔區(qū)域。簡單來說,數(shù)據(jù)區(qū)域就是一種特殊的Word書簽對象,便于定位Word文檔中的內(nèi)容。
數(shù)據(jù)標簽:是任意的有效字符組成的特殊樣式的字符串(如“【時間】”、“{姓名}”、“${name}”等等)作為標記,理論上這樣的字符串(比如:“性別”、“地址”、“aa”、“bbcc”)也可以當做數(shù)據(jù)標簽,但是不推薦使用,因為這樣的標簽不能從視覺上直觀的看出word文檔中包含了哪些數(shù)據(jù)標簽。
二、使用
數(shù)據(jù)區(qū)域里面可以填充些的內(nèi)容:文本、圖片、Word文件、Excel文件。
WordDocument doc = new WordDocument();
//填充文本
DataRegion dataRegion1 = doc.openDataRegion("PO_userName");
dataRegion1.setValue("張三");
//還可以給填充的文本設置字體,顏色,粗體等樣式
dataRegion1.getFont().setColor(Color.blue);
dataRegion1.getFont().setSize(24);
dataRegion1.getFont().setName("隸書");
dataRegion1.getFont().setBold(true);
//填充圖片
doc.openDataRegion("PO_deptName").setValue("[image]img/123.jpg[/image]");
//填充word文件
doc.openDataRegion("PO_deptName").setValue("[word]doc/aabb.doc[/word]");
//填充excel文件
doc.openDataRegion("PO_deptName").setValue("[excel]doc/bbcc.xls[/excel]");
數(shù)據(jù)標簽中可以填充的內(nèi)容:文本。
WordDocument doc = new WordDocument();
//填充文本,還可以設置字體、顏色等樣式
DataTag deptTag = doc.openDataTag("{部門名}");
deptTag.setValue("市場部");
deptTag.getFont().setColor(Color.GREEN);
deptTag.getFont().setName("宋體");
deptTag.getFont().setSize(28);
三、區(qū)別
DataRegion類是要與書簽結合使用的,既可以先在Word文檔中插入以“PO_”開頭的書簽定義數(shù)據(jù)區(qū)域,再在程序中通過WordDocument類對象的OpenDataRegion(String DataRegionName)方法獲取DataRegion對象;又可以通過WordDocument類對象的CreateDataRegion(String NewDataRegionName, DataRegionInsertType insertType, String RelativeDataRegionName)方法直接創(chuàng)建數(shù)據(jù)區(qū)域從而獲取DataRegion類對象。而DataTag類是與Word文檔中用戶插入的自定義特征文本結合使用的。在程序中DataTag類對象只能通過OpenDataTag(String DataTagName)方法獲取。
另外,數(shù)據(jù)區(qū)域的名稱(即書簽名稱)必須以“PO_”開頭,兩個書簽之間要有最少一個的有效字符,不能重復,數(shù)據(jù)區(qū)域的名稱和Word文檔中的位置是一一對應的。而數(shù)據(jù)標簽的名稱就是具有一定特征的Word字符串文本,便于定位Word文檔中的內(nèi)容,可以重復,數(shù)據(jù)標簽的名稱和Word文檔中的位置是一對多的關系。也就是說,同一個Name的DataRegion只能表示W(wǎng)ord文檔中唯一一個位置,而在Word文檔中相同的特征字符串可以在多處出現(xiàn)。
所以DataRegion的優(yōu)點是:DataRegion既可以填充文檔內(nèi)容,還可以創(chuàng)建文檔內(nèi)容、提交用戶在DataRegion里輸入的內(nèi)容、獲取用戶提交的DataRegion里的內(nèi)容,而DataTag只能用于填充文檔內(nèi)容。DataRegion的缺點是:DataRegion無法簡單重復,必須要設置不同的書簽,而DataTag可以在文檔中多處生成需要重復的內(nèi)容。
而應該用DataTag還是用DataRegion,則應該視具體的需求而定。當用戶要提交Word中某部分數(shù)據(jù)或者想要獲取Word中提交的某部分數(shù)據(jù)時則必須要用DataRegion;當用戶不需提交數(shù)據(jù)或者獲取數(shù)據(jù),并且填充的數(shù)據(jù)無重復項時,則兩者均可;當用戶不需提交數(shù)據(jù)或者獲取數(shù)據(jù),且填充的數(shù)據(jù)有多個重復項時,雖然兩者均可,但是為了編程簡便、代碼高效,建議使用DataTag。
總結
以上是生活随笔為你收集整理的java word模版填充_[转载]java向word模板中填充数据(总结)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java foxmail 附件_foxm
- 下一篇: java 时间戳 星期几_java自定义