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

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

  1、 概念字體

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

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

  2、使用blog

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

複製代碼

 

  3、區別字符串

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

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

         因此DataRegion的優勢是:DataRegion既能夠填充文檔內容,還能夠建立文檔內容、提交用戶在DataRegion裏輸入的內容、獲取用戶提交的DataRegion裏的內容,而DataTag只能用於填充文檔內容。DataRegion的缺點是:DataRegion沒法簡單重複,必需要設置不一樣的書籤,而DataTag能夠在文檔中多處生成須要重複的內容。

         而應該用DataTag仍是用DataRegion,則應該視具體的需求而定。當用戶要提交Word中某部分數據或者想要獲取Word中提交的某部分數據時則必需要用DataRegion;當用戶不需提交數據或者獲取數據,而且填充的數據無重複項時,則二者都可;當用戶不需提交數據或者獲取數據,且填充的數據有多個重複項時,雖然二者都可,可是爲了編程簡便、代碼高效,建議使用DataTag。

標籤: Java動態填充word

相關文章
相關標籤/搜索