获取Field BookMark

时间:2013-08-01 08:18:49

标签: c# com ms-word

我在控制台应用程序中使用Microsoft.Office.Interop.Word命名空间从MSWord文档获取表单数据。在这个MSWord doc中,每个字段都分配了一个书签,我将其用作id。

我希望能够检索字段的值,并将其存储在字典中。我只能获取每个字段的值,但不能获取书签和字段。

有没有办法可以像wdField.Result.Bookmark那样获取字段的书签?我查看了MSDN documentation,但我很难做到这一点。这是我列举的foreach循环:

     foreach (Field wdField in oWordDoc.Fields)
           {
             wdField.Select(); 
             string fieldText = wdField.Result.Text
             Console.WriteLine(fieldText);   
             //string fieldBookMark = wdField.Result.BookMark
           }

1 个答案:

答案 0 :(得分:4)

KazJaw是对的:如果您将所有目标文本“加入书签”,则可以仅依靠BookMarks。示例代码:

foreach (Bookmark bookMark in oWordDoc.Bookmarks)
{
    string bmName = bookMark.Name;
    Range bmRange = bookMark.Range;
    string bmText = bmRange.Text;
}

或者:

Range bmRange = oWordDoc.Bookmarks["bookmark name"].Range;