1

我需要向 Word 2010 DOTX 模板添加一些字段,当使用 Word 互操作服务在 C# 程序中打开文档时,这些字段将在“运行时”自动填充自定义内容。通过 QuickParts 功能区菜单选项将“询问”或“填写”字段添加到模板时,我看不到任何方法可以为它们分配唯一名称。

当我在 C# 程序中迭代 document.Fields 集合时,我必须知道我正在引用哪个字段,以便为它分配正确的值。

以前版本的 Word 和 Word 2010 之间的情况似乎发生了变化。因此,如果您回答,请确保您的回答适用于 2010 年。不要假设以前版本中的工作在 2010 年有效。非常感谢,因为我很少在 2010 年试图弄清楚功能区菜单时,使用 Word 并感觉像个傻瓜。

4

1 回答 1

0

您是正确的,因为字段不一定具有将自己与其他字段实例唯一区分开来的内置方法(字段集合中的索引除外)。但是,您可以使用 Field.Type 属性来测试 wdFieldAsk 或 wdFieldFillIn 。如果这不足以识别 ID,那么您将需要从 Field.Code 解析您自己的唯一标识符。例如,您可以将 FILLIN 字段构造为:

{ FILLIN "Hello, World!" MYIDENTIFER }

当您遍历您的 document.Fields 集合时,只需对字符串中的标识符进行测试。编辑:示例:

For Each fld In ActiveDocument.Fields
    If InStr("CARMODEL", fld.Code) <> 0 Then
        ''this is the carmodel field
    End If
Next

另一种选择 - 使用“^d MYIDENTIFIER”的 Find.Text 查找您的特定字段(其中 ^d 是“字段代码”的表达式)

让我知道这是否有帮助,如果有任何差距,请扩展您的问题。

于 2012-09-27T03:00:19.463 回答