Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
通常,当插入到 Microsoft Word 中时,字段已经包含最新值。例如,如果该字段是公式或页码,它将包含给定文档版本的正确计算值。但是,如果您有一个应用程序生成或修改带有字段的文档(例如组合两个文档或填充数据),那么为了使文档有用,最好更新所有字段。
一个字段由以下部分组成:

以下是如何使用"DocumentExplorer" 示例(可在 吉图布 上找到)在 Aspose.Words 中存储字段的视图。

Aspose.Words是一个为Microsoft Word文档的服务器端处理而设计的类库,支持以下方式的字段:
Microsoft Word 文档中的字段很复杂。有超过 50 种字段类型(每种类型都需要自己的结果计算过程)、公式和表达式、书签和引用、函数和各种开关。字段也可以嵌套。通常,当打开文档时,会显示文档中所有字段的字段结果(字段的值)。您可以通过按 ALT+F9 切换所有字段的 Microsoft Word 中字段结果或字段代码的显示。
| 字段代码 | 现场结果 |
|---|---|
![]() |
![]() |
要在 Microsoft Word 中插入字段:




要更新 Microsoft Word 中的单个字段:
要更新 Microsoft Word 中的所有字段:
要切换 Microsoft Word 中单个字段的字段代码:
要切换 Microsoft Word 中所有字段的字段代码:
1.按ALT+F9
要将动态字段转换为 Microsoft Word 中的静态文本:
要删除 Microsoft Word 中的字段:
当文档加载到 Aspose.Words 中时,文档的字段将作为一组单独的组件(节点)加载到 Aspose.Words Document Object Model 中。单个字段作为 FieldStart、FieldSeparator 和 FieldEnd 节点以及这些节点之间的内容的集合加载。如果字段没有字段结果,则不会有 FieldSeparator 节点。所有这些节点始终是内联的(作为 Paragraph 或 SmartTag 的子节点)。
组成字段代码的内容作为 Run 节点存储在 FieldStart 和 FieldSeparator 之间。字段结果存储在 FieldSeparator 和 FieldEnd 节点之间,并且可以由各种类型的内容组成。通常,字段结果仅包含由 Run 节点组成的文本,但是 FieldEnd 节点可能位于完全不同的段落中,从而使字段结果也由块级节点(例如 Table 和 Paragraph 节点)组成。
在 Aspose.Words 中,每个 FieldXXX 节点都源自 FieldChar。该类提供了一个属性,用于通过 FieldChar.field_type 属性检查指定节点所表示的字段类型。例如,FieldType.FIELD_MERGE_FIELD 表示文档中的合并字段。
Word 文档中存在一些特定字段,这些字段不会作为 FieldXXX 节点集合导入到 Aspose.Words 中。例如,LINK 字段和 INCLUDEPICTURE 字段作为 Shape 对象导入到 Aspose.Words 中。该对象提供了处理通常存储在这些字段中的图像数据的属性。
表单字段也作为其自己的特殊类导入到 Aspose.Words 中。 FormField 类表示 Word 文档中的表单字段,并提供表单字段特有的其他方法。
当前版本的 Aspose.Words 支持以下字段的计算:
ADDRESSBLOCKAUTHORCOMPARECREATEDATEDATEDOCPROPERTYDOCVARIABLEGREETINGLINEIFINCLUDETEXTMERGEFIELDMERGERECMERGESEQNEXTNEXTIFNUMPAGESPAGEPAGEREFREFSECTIONSECTIONPAGESSEQSETSTYLEREFTIMETITLETOATOC(包括TOT和TOF)Aspose.Words 遵循 Microsoft Word 处理字段的方式,因此它可以正确处理:
: IF { =OR({ COMPARE { =2.5 +PRODUCT(3,5 ,8.4) } > 4}, { =2/2 }) } = 1 "Credit not acceptable" "Credit acceptable"MERGEFIELD \f"Text after""Field \n\ame with \" and \\\ and \\\*"\bTextBefor\eAspose.Words 提供了公式引擎的非常严格的实现并支持以下内容:
=(54+4*(6-77)-(5))+(-6-5)/4/5=ABS(-01.4)+2.645/(5.6^3.5)+776457 \\\# "#,##0"=IF(C>4, 5,ABS(A)*.76) +3.85=00000000 \\\# "$#,##0.00;($#,##0.00)"支持表达式中的以下函数:ABS、AND、AVERAGE、COUNT、DEFINED、FALSE、IF、INT、MAX、MIN、MOD、NOT、OR、PRODUCT、ROUND、SIGN、SUM、TRUE。
IF 和 COMPARE 字段只需 Aspose.Words 可以轻松计算的一些 IF 表达式,您就可以了解此功能的强大之处:
IF 3 > 5.7^4+MAX(4,3) True FalseIF "abcd" > "abc" True FalseIF "?ab*" = "1abdsg" True FalseIF 4 = "2*2" True FalseCOMPARE 3+5/34 < 4.6/3/2DATE 和 TIME 字段Aspose.Words 支持 Microsoft Word 中提供的所有日期和时间格式开关,一些示例是:
DATE @ "d-MMM-yy"DATE @ "d/MM/yyyy h:mm am/pmAspose.Words 对文档中 Mail Merge 字段的复杂性没有限制,支持嵌套 IF 和公式字段,甚至可以使用公式计算合并字段的名称。
Aspose.Words 支持的 Mail Merge 字段的一些示例:
MERGEFIELD FirstName \\\\\\\\* FirstCap \b "Mr. "IF { MERGEFIELDValue1 } >= {MERGEFIELD Value2 } True FalseMERGEFIELD { IF{MergeFieldValue1 } >= {MergeField Value2 } FirstName"LastName" }NEXTIF { MERGEFIELDValue1 } <= { =IF(-2.45 >= 6*{MERGEFIELD Value2 }, 2, -.45) }文档中的字段可以具有格式开关,用于指定结果值的格式。 Aspose.Words 支持以下格式切换:
Aspose.Words计算字段结果时,经常需要将字符串解析为数字或日期值,并将其格式化回字符串。默认情况下,Aspose.Words在字段更新期间计算字段值时使用当前线程区域性来执行解析和格式化和mail merge。还有以 FieldOptions 类的形式提供的选项,允许进一步控制字段更新期间使用的区域性。
要控制字段计算期间使用的区域性,只需在调用字段计算之前使用 语言环境.setlocale 方法设置您选择的区域性。 下面的示例显示了如何在更新期间更改格式化字段中使用的区域性。
使用当前区域性来格式化字段允许系统在字段更新期间轻松一致地控制文档中所有字段的格式化方式。
另一方面,Microsoft Word 根据字段中找到的文本语言(特别是字段代码中的运行)来格式化每个单独的字段。有时,在字段更新期间,这可能是所需的行为,例如,如果您有包含由多种不同语言组成的内容的全球化文档,并且希望每个字段遵循文本中使用的区域设置。 Aspose.Words 也支持此功能。
Document 类提供了一个 field_options 属性,其中包含可用于控制文档中字段更新方式的成员。下面的示例展示了如何指定在字段更新期间用于日期格式设置的区域性以及选择 Mail Merge 的位置。
使用 DocumentBuilder.insert_field 插入的字段返回 Field 对象。这是一个外观类,它提供了有用的方法来快速查找字段的此类属性。请注意,如果您只想查找文档中合并字段的名称,那么您可以使用内置方法 MailMerge.get_field_names。下面的示例展示了如何获取文档中所有合并字段的名称。
下面的示例展示了如何重命名 Word 文档中的合并字段。
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.