Class 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; }При значении true указывает, что в дополнение к полям MERGEFIELD слияние выполняется с некоторыми другими типами полей и также с тегами “{{fieldName}}”.
UseWholeParagraphAsRegion { get; set; }Получает или задает значение, указывающее, следует ли включать в область слияния весь абзац с полем TableStart или TableEnd или определенный диапазон между полями TableStart и TableEnd.

Методы

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

Примечания

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

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

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

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

ИспользоватьВыполнить с регионами методы объединения информации в документ 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;
}

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