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 первого раздела документа и его копии для последующих строк источника данных сохраняются во время слияния почты или обновляются в соответствии с поведением MS Word.
TrimWhitespaces { get; set; }Возвращает или задает значение, указывающее, удаляются ли конечные и начальные пробелы из значений слияния почты.
UnconditionalMergeFieldsAndRegions { get; set; }Возвращает или задает значение, указывающее, объединяются ли поля слияния и регионы слияния независимо от условия родительского поля IF.
UseNonMergeFields { get; set; }Когдаистинный , указывает, что в дополнение к полям MERGEFIELD слияние выполняется в некоторые другие типы полей и также в теги “{{fieldName}}”.
UseWholeParagraphAsRegion { get; set; }Возвращает или задает значение, указывающее, является ли весь абзацTableStart илиTableEnd field или определенный диапазон междуTableStart иTableEnd поля должны быть включены в область слияния почты.

Методы

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

Примечания

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

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

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

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

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

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

Примеры

Показывает, как выполнить слияние почты с данными из 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;
}

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