用C#填充Word模板字段

ero*_*ebe 4 c# ms-word office-interop word-template word-field

当前,如果我创建带有字段的Word文档模板,然后使用C#填充它们,则与此类似。

object missing = Type.Missing;
Word.Application app = new Word.Application();
Word.Document doc = app.Documents.Open("file.doc", ref missing, true);
Word.FormFields fields = doc.FormFields;
fields[2].Result = "foo"
fields[3].Result = "bar"
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来引用这些字段?

我注意到在创建模板时,我可以向该字段添加标题和标签,但是我还没有找到引用这些属性的方法。能够命名字段并直接引用它们,而不是仅仅计算并弄清楚我所在的字段,这将是很好的。

hel*_*ich 5

一种好的方法是,在以后要添加文本的模板中的每个位置放置一个书签(“插入”->“链接”->“书签”)。要从代码中使用它们,您将按其名称访问每个书签,请参见以下示例:

Word._Application wApp = new Word.Application();
Word.Documents wDocs = wApp.Documents;
Word._Document wDoc = wDocs.Open(ref "file_path_here", ReadOnly:false);
wDoc.Activate();

Word.Bookmarks wBookmarks = wDoc.Bookmarks;
Word.Bookmark wBookmark = wBookmarks["Bookmark_name"];
Word.Range wRange = wBookmark.Range;
wRange.Text = valueToSetInTemplate;
Run Code Online (Sandbox Code Playgroud)