C# Word Document Update Fields
Currently, if I create a Word Document Template with fields, and then fill them using C#, I do it similar to this. Auditorium Section Dwg on this page. Object missing = Type.Missing; Word.Application app = new Word.Application(); Word.Document doc = app. Gprinter Virtual Com Port Driver on this page. Documents.Open('file.doc', ref missing, true); Word.FormFields fields = doc.FormFields; fields[2].Result = 'foo' fields[3].Result = 'bar' Is there a better way to reference the fields?
I notice when creating the template I can add a Title and a Tag to the field, but I haven't found a way to reference those properties. It would be nice to be able to name fields and reference them directly, instead of just counting and figuring out which field I am on. Are you using legacy forms? When you add a legacy form field to a Word doc, under Properties >Field Settings there is a Bookmark which is basically the name of the field. By default, a legacy text field will have a Bookmark of 'Text1', 'Text2', etc. So in VBA: ActiveDocument.FormFields('Text1').Result = 'asdf' In your case it might be (C#): doc.FormFields['Text1'].Result = 'asdf' Or you could simply write a loop that scans the list of fields and looks for a given name (pseudo-VB): Function GetFieldByName(name As String) As Field Dim i For i = 0 to fields.count - 1 If fields(i).Name = name Then Return fields(i) Next Return Nothing End Function If you're using the newer form field controls where you can set a Tag and automate with VSTO (C#): doc.SelectContentControlsByTag('Address')[1].Range.Text = 'asdf' Read more about Content Controls.
One good way to do it is to, at each place in the template you would like to add text later, place a bookmark (Insert ->Links ->Bookmark). To use them from your code, you would access each bookmark by its name, see this example: 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.
Citigroup Inc. Stock price, stock quotes and financial overviews from MarketWatch. How do I update all fields in a Word document? Up vote 83 down vote favorite. I want a way of updating all fields in a Word 2013 document. For C#: using. The C programming language is a popular and widely used programming language for creating computer programs. Programmers around the world embrace C. Jasa Download Kaskus.