Java根據word模板生成word文檔之設計詳細思路---word標籤定義

word替換原理:通過順序查找word模板中的特殊字符標記,找到一個或多個就替換出響應的值,而表格的替換或者說生成是根據word中表格定義的序列來定位查找的,比如第一個表格的序列就是0,以此類推1,2,3...,所以我們知道了響應的替換查找原理之後,就可以開始下面的標籤定義了。

通過前面的XML標籤對應,那麼word標籤也必須和xml相對應。

word模板定義主要包含以下幾個內容:

一是:單個標籤的定義,比如:在word中某個地方,定義一個標籤,所謂標籤就是XML中自定義的field中的key,我默認以$開始$結束,

例如:

系統名稱:      $system_name$           
被測單位:      $ent_comany_name$       

二是:表格標籤的定義,表格的定義不需要在表格中每列都定一個filed,它是通過自動匹配的方式來查找的,所以順序是必須要正確的。我們只需要定義表格的樣式頭和內容的樣式就可以,通過後臺自動匹配而得到每列的值,並會不斷的增加表格的行數,同時在後臺HashMap中的Key格式爲"table$R@N",以“table”開頭,其中:R代表從表格的第R行開始替換,N代表word模板中的第N張表格

例如就這樣定義好就行了:

姓名 性別 年齡 成績
       

三是:圖片標籤的定義,其實圖片的定義和單個標籤的定義是一樣的,只不過是在我們的定義過程中,加了一個約束或者說特殊標記,比如要在word中某個位子插入統計圖,那麼就需要和XML中定義的dataSet的name屬性相同,如上面定義的統計圖dataSet  name="image$zhcjfxldt" 那麼我們就需要在這裏寫成image$zhcjfxldt 這樣就能匹配上,這個是針對統計圖,還有一種是直接從數據庫中查詢出來的,那麼這種就直接對應field中的key就行了,所以在定義XML的時候,如果你知道那是要展示圖片的,定義成以“image$” 開頭的,這樣也是爲了整體的統一和後臺好解析。


四是:WORD嵌入另外一個word中的內容:那麼word標籤的定義標籤爲: "soword$xx",以“soword”開頭。


(未完待續)

發佈了36 篇原創文章 · 獲贊 18 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章