2014-05-05 59 views

回答

0

嘗試在將文件添加到文檔之前檢查要插入空值的數據。通常情況下,用空字符串替換null會有訣竅。如果有任何問題,我會提供幫助。

0

完成此操作的一種方法是在模板中的可選部分周圍添加書籤,並使用BookmarksToRemove方法(在版本8.4中引入)告訴WordTemplate對象哪些部分要移除。該方法採用書籤名稱的字符串數組。您的代碼需要確定哪些書籤部分不包含數據。

WordTemplate wt = new WordTemplate(); 
wt.Open(@"c:\templates\Template.docx"); 
string [] bookmarks = {"OptionalSection1", "OptionalSection2"}; 
wt.BookmarksToRemove(bookmarks); 
wt.Process(); 
wt.Save(@"c:\reports\Report.docx"); 

另一種選擇是在Word模板文件中使用IF fields。您可以在IF字段中使用條件邏輯來顯示或隱藏文檔的整個部分,具體取決於特定合併字段中的值。爲了讓OfficeWriter計算服務器上的IF字段,您需要打開UpdateIfFields屬性。如果你想在IF域要刪除它們進行評估後,您可以使用UnlinkIfFields屬性(在8.1版本中引入的)

WordTemplate wt = new WordTemplate(); 
wt.UpdateIfFields = true; 
wt.UnlinkIfFields = true; 

優勢使用IF域是在您的數據空結果可以自動處理。使用IF字段的缺點是可以使模板更復雜。這可能是也可能不是問題,具體取決於您的模板是由用戶還是開發人員創建的。