java向word模板中填充數據(總結)

使用過PageOffice動態生成word文檔的人都知道,PageOffice可以給word文檔的指定位置進行填充,這裏我們所說的指定位置在PageOffice的專業術語裏面有兩個概念,一個叫做數據區域(DataRegion),另一個叫做數據標籤(DataTag)。

  一、 概念

  數據區域:是Word文檔中具有 "PO_" 前綴命名的書籤所定位的文檔區域。簡單來說,數據區域就是一種特殊的Word書籤對象,便於定位Word文檔中的內容。

  數據標籤:是任意的有效字符組成的特殊樣式的字符串(如“【時間】”、“{姓名}”、“${name}”等等)作爲標記,理論上這樣的字符串(比如:“性別”、“地址”、“aa”、“bbcc”)也可以當做數據標籤,但是不推薦使用,因爲這樣的標籤不能從視覺上直觀的看出word文檔中包含了哪些數據標籤。

  二、使用

  數據區域裏面可以填充些的內容:文本、圖片、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]");

複製代碼
  數據標籤中可以填充的內容:文本。

 

複製代碼
WordDocument doc = new WordDocument();
//填充文本,還可以設置字體、顏色等樣式
DataTag deptTag = doc.openDataTag("{部門名}");
deptTag.setValue("市場部");
deptTag.getFont().setColor(Color.GREEN);
deptTag.getFont().setName("宋體");
deptTag.getFont().setSize(28);
複製代碼

  三、區別

    DataRegion類是要與書籤結合使用的,既可以先在Word文檔中插入以“PO_”開頭的書籤定義數據區域,再在程序中通過WordDocument類對象的OpenDataRegion(String DataRegionName)方法獲取DataRegion對象;又可以通過WordDocument類對象的CreateDataRegion(String NewDataRegionName, DataRegionInsertType insertType, String RelativeDataRegionName)方法直接創建數據區域從而獲取DataRegion類對象。而DataTag類是與Word文檔中用戶插入的自定義特徵文本結合使用的。在程序中DataTag類對象只能通過OpenDataTag(String DataTagName)方法獲取。

     另外,數據區域的名稱(即書籤名稱)必須以“PO_”開頭,兩個書籤之間要有最少一個的有效字符,不能重複,數據區域的名稱和Word文檔中的位置是一一對應的。而數據標籤的名稱就是具有一定特徵的Word字符串文本,便於定位Word文檔中的內容,可以重複,數據標籤的名稱和Word文檔中的位置是一對多的關係。也就是說,同一個Name的DataRegion只能表示Word文檔中唯一一個位置,而在Word文檔中相同的特徵字符串可以在多處出現。

     所以DataRegion的優點是:DataRegion既可以填充文檔內容,還可以創建文檔內容、提交用戶在DataRegion裏輸入的內容、獲取用戶提交的DataRegion裏的內容,而DataTag只能用於填充文檔內容。DataRegion的缺點是:DataRegion無法簡單重複,必須要設置不同的書籤,而DataTag可以在文檔中多處生成需要重複的內容。

     而應該用DataTag還是用DataRegion,則應該視具體的需求而定。當用戶要提交Word中某部分數據或者想要獲取Word中提交的某部分數據時則必須要用DataRegion;當用戶不需提交數據或者獲取數據,並且填充的數據無重複項時,則兩者均可;當用戶不需提交數據或者獲取數據,且填充的數據有多個重複項時,雖然兩者均可,但是爲了編程簡便、代碼高效,建議使用DataTag。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章