1. 程式人生 > >使用poi動態替換word指定文字內容

使用poi動態替換word指定文字內容

這兩天專案需要用到動態生成word文件,於是從網上查了各種資料。一種是通過poi來替換word指定內容的。具體java程式碼請百度。我這裡直說我遇到的問題以及解決方案。

問題:指定文字被解析成了多個XWFPRun物件,比如${userName}被解析成了“${” + "userN" + "ame}" 導致想要替換的文字死活替換不了

分析:XWFPRun在word裡代表具有相同屬性的一段文字,所以我就用格式刷將要替換的文字全刷了一遍。結果——不行。繼續百度(感謝中國有度娘)。網上另一種方式是frddmarker+xml來生成word。所以就想換一種實現方式。結果——柳暗花明。

解決方案:依然採用poi替換word中的指定文字。將建立的word模板另存為“XML”,使用文字編輯器(我直接用的eclipse)開啟你會發現你要替換的文字(${userName})確實被拆分定義在了不同的<w:r標籤中且屬性不同,下面你要做的就是手動修改那個"XML”檔案,然後儲存為“docx”就可以了。

以下是我修改後的程式碼:

語言有些混亂。