Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.Words是一个为服务器端处理Microsoft Word文档而设计的类库,支持以下方式的字段:
在本文中,我们将详细了解字段结构、Aspose.Words中支持的字段以及使用此类字段的详细信息。
一个字段由:

构成字段代码的内容存储为FieldStart和FieldSeparator之间的Run节点。 字段结果存储在FieldSeparator和FieldEnd节点之间,可以由各种类型的内容组成。 通常,字段结果只包含由运行节点组成的文本,但是FieldEnd节点可能位于完全不同的段落中,从而使字段结果由 块级节点 如Table和Paragraph节点为好。
下面是一个如何通过使用"*DocumentExplorer"*示例在Aspose.Words中存储字段的视图,该示例可以在 Github.

当文档加载到Aspose.Words时,文档的字段作为一组单独的组件(节点)加载到Aspose.Words文档对象模型中。 单个字段作为FieldStart,FieldSeparator和FieldEnd节点的集合以及这些节点之间的内容加载。 如果字段没有字段结果,则不会有FieldSeparator节点。 所有这些节点总是内联找到(作为Paragraph或SmartTag的子节点。
在Aspose.Words中,每个FieldXXX节点都来自FieldChar。 此类提供了一个属性,用于通过FieldType属性检查指定节点表示的字段类型。 例如FieldType.FieldMergeField表示文档中的合并字段。
Word文档中存在一些特定字段,这些字段没有作为FieldXXX节点的集合导入到Aspose.Words中。 例如,LINK字段和INCLUDEPICTURE字段作为Shape对象导入到Aspose.Words中。 此对象提供用于处理通常存储在这些字段中的图像数据的属性。 要将INCLUDEPICTURE字段导入为FieldXXX节点,必须将PreserveIncludePictureField选项指定为true。
表单字段也作为它们自己的特殊类导入到Aspose.Words中。 FormField类表示Word文档中的表单字段,并提供特定于表单字段的其他方法。
当前版本的Aspose.Words支持计算以下字段:
ADDRESSBLOCKASKAUTHORAUTONUMAUTONUMLGLAUTONUMOUTAUTOTEXTBARCODECOMMENTSCOMPARECREATEDATEDATABASEDATEDISPLAYBARCODEDOCPROPERTYDOCVARIABLEEDITTIMEEQFILENAMEFILESIZEFILLINFORMCHECKBOXFORMDROPDOWNFORMTEXTGLOSSARYGOTOBUTTONGREETINGLINEHYPERLINKIFIMPORTINCLUDEINCLUDEPICTUREINCLUDETEXTINDEXINFOKEYWORDSLASTSAVEDBYLISTNUMMACROBUTTONMERGEBARCODEMERGEFIELDMERGERECMERGESEQNEXTNEXTIFNOTEREFNUMCHARSNUMPAGESNUMWORDSPAGEPAGEREFPRINTDATEQUOTEREFREVNUMSAVEDATESECTIONSECTIONPAGESSEQSETSHAPESKIPIFSTYLEREFSUBJECTSYMBOLTEMPLATETIMETITLETOATOC (including TOT and TOF)USERADDRESSUSERINITIALSUSERNAMEAspose.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 and COMPARE Fields只是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 and TIME FieldsAspose.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计算字段结果时,它通常需要将字符串解析为数字或日期值,并将其格式化为string.By 默认Aspose.Words在字段更新和mail merge期间计算字段值时使用当前线程区域性执行解析和格式化。 还有以FieldOptions类形式提供的选项,它允许进一步控制字段更新期间使用的区域性%
要控制字段计算期间使用的区域性,只需在调用字段计算之前将CurrentCulture属性设置为您选择的区域性即可。
下面的代码示例演示如何在更新期间更改格式化字段中使用的区域性:
EXAMPLE(使用公共包装器CurrentThreadSettings。getLocale()和setLocale()而不是私有的Thread.CurrentThread。CurrentCulture)
使用当前区域性设置字段格式允许系统轻松一致地控制字段更新期间文档中所有字段的格式设置。
另一方面,Microsoft Word根据字段中找到的文本的语言(特别是从字段代码中运行的文本)对每个单独的字段进行格式化。 有时,在字段更新期间,这可能是所需的行为,例如,如果您有包含由许多不同语言组成的内容的全球化文档,并且希望每个字段都遵守文本中使用的区域 Aspose.Words也支持此功能。
Document类提供了一个FieldOptions属性,该属性包含可用于控制文档中字段的更新方式的成员。
下面的代码示例演示如何指定字段更新和Mail Merge期间用于日期格式设置的区域性的选择位置:
EXAMPLE
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.