我使用softartisans的WordTemplate生成報告。報告的某些部分可能沒有數據。數據爲空時,如何從生成的Word文檔中刪除一部分?WordWritter WordTemplate - 如何刪除數據爲空時的部分?
我希望有任何幫助。
謝謝。
我使用softartisans的WordTemplate生成報告。報告的某些部分可能沒有數據。數據爲空時,如何從生成的Word文檔中刪除一部分?WordWritter WordTemplate - 如何刪除數據爲空時的部分?
我希望有任何幫助。
謝謝。
嘗試在將文件添加到文檔之前檢查要插入空值的數據。通常情況下,用空字符串替換null會有訣竅。如果有任何問題,我會提供幫助。
完成此操作的一種方法是在模板中的可選部分周圍添加書籤,並使用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字段的缺點是可以使模板更復雜。這可能是也可能不是問題,具體取決於您的模板是由用戶還是開發人員創建的。