字段结果格式化
字段结果格式化
本指南展示了如何在 Aspose.Words FOSS for .NET 中控制应用于字段计算结果的数值、日期/时间以及通用格式,使用 FieldFormat 类、GeneralFormat 枚举和 GeneralFormatCollection。每个 Field 实例通过其 Format 属性公开这些格式开关;本页深入探讨该属性提供的功能。
访问字段的格式设置
每个 Field —— 以及其类型子类如 FieldDate、FieldCreateDate 和 FieldSymbol —— 都公开一个类型为 FieldFormat 的 Format 属性,用于对字段的数值、日期和时间以及通用格式进行类型化访问。阅读 Field.Format 以在不手动编辑原始字段代码文本的情况下检查或更改附加到字段代码的开关。
数值和日期/时间格式示例
FieldFormat.NumericFormat 是一个可写的 string 属性,保存应用于数值字段结果的格式。FieldFormat.DateTimeFormat 是一个可写的 string 属性,保存应用于日期和时间字段结果的格式。设置任一属性即可更改相应字段类型呈现其计算值的方式。
通用格式
FieldFormat.GeneralFormats 返回一个 GeneralFormatCollection —— 适用于数值、文本或任何字段结果的通用格式。它的成员取自 GeneralFormat 枚举,涵盖大小写转换(Upper、Lower、FirstCap、Caps)、罗马数字和序数编号(UppercaseRoman、LowercaseRoman、Ordinal、OrdText)、货币和基数文本(DollarText、BahtText、CardText)、特定地区的编号系统(Aiueo、Arabic、ArabicAbjad、ArabicAlpha、ArabicDash、ChineseNum1–ChineseNum3、KanjiNum1–KanjiNum3、Hebrew1、Hebrew2、Ganada、Chosung、Zodiac1–Zodiac3、ThaiArabic、ThaiCardText、ThaiLetter、HindiArabic、HindiCardText、HindiLetter1、HindiLetter2、VietCardText、DBNum1–DBNum4、DBChar、SBChar、GB1–GB4、Hex、CircleNum、UppercaseAlphabetic、LowercaseAlphabetic),以及合并字段特定的值 CharFormat、MergeFormat、MergeFormatInet。None 用于清除通用格式。
管理 GeneralFormatCollection
GeneralFormatCollection 实现了 IEnumerable<GeneralFormat>,因此您可以在 foreach 循环中使用 GetEnumerator() 对其进行迭代。调用 Add(item) 可追加一个 GeneralFormat 值,调用 Remove(item) 可删除所有出现的该值,或调用 RemoveAt(index) 可删除特定位置的值。Count 会报告当前已应用的通用格式数量。
技巧与最佳实践
- 请设置
Field.Format.NumericFormat或Field.Format.DateTimeFormat,而不是将格式图片直接嵌入字段代码字符串中——已键入的属性可保持字段代码与其格式开关同步。 - 通过将每个
GeneralFormat值单独添加到GeneralFormats,可组合多个GeneralFormat值(例如Upper和MergeFormat);该集合允许多个条目。 - 在更改任何
FieldFormat属性后,调用拥有字段上的Update(),以便新格式在Result/DisplayResult中得到体现。 - 使用
GeneralFormat.None明确清除通用格式条目,而不是让过时的格式值残留在集合中。 - 在假设字段没有应用通用格式之前,请检查
GeneralFormatCollection.Count——空集合和包含None的集合是不同的状态。
常见问题
| 问题 | 原因 | 修复 |
|---|---|---|
更改 NumericFormat 没有可见效果 | 更改后字段未重新计算 | 在编辑任何 FieldFormat 属性后,对字段调用 Update() |
GeneralFormats 中出现重复的通用格式 | 对相同的 GeneralFormat 值多次调用了 Add(item) | 检查 GeneralFormatCollection.Count 或在添加前进行迭代,或先调用 Remove(item) |
错误条目已从 GeneralFormats 中移除 | RemoveAt(index) 被调用时使用了在之前删除后已移动的索引 | 检查 Count 并在按索引删除之前再次遍历集合 |
FAQ
FieldFormat 用于什么?
它是由 Field.Format 提供的已键入格式对象,可访问字段的数值格式(NumericFormat)、日期/时间格式(DateTimeFormat)以及通用格式(GeneralFormats)。
字段可以应用多个通用格式吗?
是的——GeneralFormats 是一个 GeneralFormatCollection,您可以向它 Add 多个 GeneralFormat 值。
如何从字段中移除所有通用格式?
遍历 GeneralFormats 并对每个值调用 Remove(item),或对特定条目使用 RemoveAt(index)。
设置 FieldFormat 属性会自动刷新字段显示的文本吗?
不——在更改字段的 Format 属性后,调用字段上的 Update(),以便 Result 和 DisplayResult 反映新的格式。
API Reference 摘要
| 类/方法 | 描述 |
|---|---|
FieldFormat | 通过 Field.Format 提供对字段的数值、日期/时间以及通用格式的类型化访问; |
FieldFormat.NumericFormat | 已对数字字段结果应用格式图片 |
FieldFormat.DateTimeFormat | 已对日期/时间字段结果应用格式图片 |
FieldFormat.GeneralFormats | 对字段结果应用的一般格式的 GeneralFormatCollection |
GeneralFormat | 一般格式开关的枚举(大小写转换、数字系统、合并字段格式) |
GeneralFormatCollection | 已键入的 GeneralFormat 值集合; Add、Remove、RemoveAt、Count、GetEnumerator |