MailMerge

MailMerge class

Представляет функцию слияния почты.

Чтобы узнать больше, посетитеСлияние почты и отчетность статья документации.

public class MailMerge

Характеристики

ИмяОписание
CleanupOptions { get; set; }Получает или задает набор флагов, определяющих, какие элементы следует удалить во время слияния почты.
CleanupParagraphsWithPunctuationMarks { get; set; }Получает или задает значение, указывающее, считаются ли абзацы со знаками препинания пустыми и должны ли они быть удалены, еслиRemoveEmptyParagraphs указана опция.
FieldMergingCallback { get; set; }Происходит во время слияния почты, когда в документе встречается поле слияния почты.
MailMergeCallback { get; set; }Позволяет обрабатывать определенные события во время слияния почты.
MappedDataFields { get; }Возвращает коллекцию, представляющую сопоставленные поля данных для операции слияния почты.
MergeDuplicateRegions { get; set; }Получает или задает значение, указывающее, должны ли быть объединены все регионы слияния почты документа с именем источника данных при выполнении слияния почты с регионами с источником данных или только первый.
MergeWholeDocument { get; set; }Получает или задает значение, указывающее, обновляются ли поля во всем документе при выполнении слияния почты с регионами.
PreserveUnusedTags { get; set; }Получает или задает значение, указывающее, следует ли сохранять неиспользуемые теги «усы».
RegionEndTag { get; set; }Получает или задает закрывающий тег региона слияния почты.
RegionStartTag { get; set; }Получает или задает начальный тег региона слияния почты.
RestartListsAtEachSection { get; set; }Получает или задает значение, указывающее, перезапускаются ли списки в каждом разделе после выполнения слияния почты.
RetainFirstSectionStart { get; set; }Получает или задает значение, указывающее, является лиSectionStart первого раздела документа и его копии для последующих источников данных rows сохраняются во время слияния почты или обновляются в соответствии с поведением MS Word.
TrimWhitespaces { get; set; }Получает или задает значение, указывающее, удаляются ли конечные и начальные пробелы из значений слияния почты.
UnconditionalMergeFieldsAndRegions { get; set; }Получает или задает значение, указывающее, объединяются ли поля слияния и области слияния независимо от состояния родительского поля IF.
UseNonMergeFields { get; set; }Когдаистинный , указывает, что помимо полей MERGEFIELD слияние почты выполняется с некоторыми другими типами полей и также с тегами “{{fieldName}}”.
UseWholeParagraphAsRegion { get; set; }Получает или задает значение, указывающее, содержит ли весь абзацТаблеСтарт илиКонец таблицы field или определенный диапазон междуТаблеСтарт иКонец таблицы поля должны быть включены в регион слияния почты.

Методы

ИмяОписание
DeleteFields()Удаляет из документа поля, связанные со слиянием почты.
Execute(DataRow)Выполняет слияние почты изСтрока данных в документ.
Execute(DataTable)Выполняет слияние почты из DataTable в документ.
Execute(DataView)Выполняет слияние почты изПросмотр данных в документ.
Execute(IDataReader)Выполняет слияние почты изИдатаридер в документ.
Execute(IMailMergeDataSource)Выполняет слияние почты из пользовательского источника данных.
Execute(string[], object[])Выполняет операцию слияния почты для одной записи.
ExecuteADO(object)Выполняет слияние почты из объекта набора записей ADO в документ.
ExecuteWithRegions(DataSet)Выполняет слияние почты изНабор данных в документ с регионами слияния почты.
ExecuteWithRegions(DataTable)Выполняет слияние почты изТаблица данных в документ с регионами слияния почты.
ExecuteWithRegions(DataView)Выполняет слияние почты изПросмотр данных в документ с регионами слияния почты.
ExecuteWithRegions(IMailMergeDataSource)Выполняет слияние почты из пользовательского источника данных с регионами слияния почты.
ExecuteWithRegions(IMailMergeDataSourceRoot)Выполняет слияние почты из пользовательского источника данных с регионами слияния почты.
ExecuteWithRegions(IDataReader, string)Выполняет слияние почты изИдатаридер в документ с регионами слияния почты.
ExecuteWithRegionsADO(object, string)Выполняет слияние почты из объекта набора записей ADO в документ с областями слияния почты.
GetFieldNames()Возвращает коллекцию имен полей слияния почты, доступных в документе.
GetFieldNamesForRegion(string)Возвращает коллекцию имен полей слияния почты, доступных в регионе.
GetFieldNamesForRegion(string, int)Возвращает коллекцию имен полей слияния почты, доступных в регионе.
GetRegionsByName(string)Возвращает коллекцию регионов слияния почты с указанным именем.
GetRegionsHierarchy()Возвращает полную иерархию регионов (с полями), доступных в документе.

Примечания

Чтобы операция слияния почты работала, документ должен содержать поля Word MERGEFIELD и (необязательно NEXT). Во время операции слияния почты поля слияния в документе заменяются значениями из вашего источника данных.

Существует два различных способа использования слияния почты: с регионами слияния почты и без него.

Простейшее слияние почты без регионов и очень похоже на то, как работает mail merge в Word. ИспользоватьВыполнять методы для объединения информации из источника данных some , напримерТаблица данных ,Набор данных ,Просмотр данных ,Идатаридер или массив объектов в ваш документ. The MailMerge объект обрабатывает все записи источника данных, копирует и добавляет содержимое всего документа для каждой записи.

Обратите внимание, что когдаMailMerge объект встречает поле NEXT, он выбирает следующую запись в источнике данных и продолжает объединение без копирования какого-либо содержимого.

ИспользоватьExecuteWithRegions и другие перегрузки для объединения информации в документ a с определенными регионами слияния почты. Вы можете использовать Набор данных ,Таблица данных ,Просмотр данных илиИдатаридер в качестве источников данных для этой операции.

Вам необходимо использовать регионы слияния почты, если вы хотите динамически увеличивать части внутри документа the . Без регионов слияния почты весь документ будет повторяться для каждой записи источника данных.

Примеры

Показывает, как выполнить слияние почты с данными из DataTable.

public void ExecuteDataTable()
{
    DataTable table = new DataTable("Test");
    table.Columns.Add("CustomerName");
    table.Columns.Add("Address");
    table.Rows.Add(new object[] { "Thomas Hardy", "120 Hanover Sq., London" });
    table.Rows.Add(new object[] { "Paolo Accorti", "Via Monte Bianco 34, Torino" });

    // Ниже приведены два способа использования DataTable в качестве источника данных для слияния почты.
    // 1 — использовать всю таблицу для слияния почты, чтобы создать один выходной документ слияния почты для каждой строки в таблице:
    Document doc = CreateSourceDocExecuteDataTable();

    doc.MailMerge.Execute(table);

    doc.Save(ArtifactsDir + "MailMerge.ExecuteDataTable.WholeTable.docx");

    // 2 — использовать одну строку таблицы для создания одного выходного документа слияния почты:
    doc = CreateSourceDocExecuteDataTable();

    doc.MailMerge.Execute(table.Rows[1]);

    doc.Save(ArtifactsDir + "MailMerge.ExecuteDataTable.OneRow.docx");
}

/// <summary>
/// Создает исходный документ слияния почты.
/// </summary>
private static Document CreateSourceDocExecuteDataTable()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.InsertField(" MERGEFIELD CustomerName ");
    builder.InsertParagraph();
    builder.InsertField(" MERGEFIELD Address ");

    return doc;
}

Смотрите также