Word控件Spire.Doc 【邮件合并】教程(六): 使用 C# 识别 Word 中的合并字段名称

发布于:2023-02-14 ⋅ 阅读:(677) ⋅ 点赞:(0)

我们经常遇到这样的场景,我们需要将数据合并到其他人创建的合并字段中,并且我们不确定合并字段的名称。所以为了完成邮件合并的目的,首先我们需要读取所有合并字段的名称。

Spire.Doc for.NET 最新下载

Spire.Doc.Reporting 命名空间中的 MailMerge 类公开了以下方法,这些方法返回 Word 文档中的合并字段名称或组(区域)名称的集合。

  • public string[] GetMergeFieldNames():返回所有合并字段名称的集合。
  • public string[] GetMergeFieldNames(string groupName):返回特定组内合并字段名称的集合。
  • public string[] GetMergeGroupNames():返回组名的集合。

为了更好地演示,我们使用以下示例文档:


下面的例子详细说明了如何读取上述word文档中的组名和合并字段。

using Spire.Doc;
using System;
namespace MailMerge
{
class Program
{
static void Main(string[] args)
{

//Creates Document instance
Document document = new Document();

//Loads the word document
document.LoadFromFile("MergeFields.docx");

//Gets the collection of group names
string[] GroupNames = document.MailMerge.GetMergeGroupNames();

//Gets the collection of merge field names in a specific group
string[] MergeFieldNamesWithinRegion = document.MailMerge.GetMergeFieldNames("Products");

// Gets the collection of all the merge field names
string[] MergeFieldNames = document.MailMerge.GetMergeFieldNames();

Console.WriteLine("----------------Group Names-----------------------------------------");
for (int i = 0; i < GroupNames.Length; i++)
{
Console.WriteLine(GroupNames[i]);
}

Console.WriteLine("----------------Merge field names within a specific group-----------");
for (int j = 0; j < MergeFieldNamesWithinRegion.Length; j++)
{
Console.WriteLine(MergeFieldNamesWithinRegion[j]);
}

Console.WriteLine("----------------All of the merge field names------------------------");
for (int k = 0; k < MergeFieldNames.Length; k++)
{
Console.WriteLine(MergeFieldNames[k]);
}

}

}
}

截屏: 

本文含有隐藏内容,请 开通VIP 后查看