[原創]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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM