MailMerge

MailMerge class

Stellt die Serienbrieffunktion dar.

Um mehr zu erfahren, besuchen Sie dieSerienbrief und Berichterstellung Dokumentationsartikel.

public class MailMerge

Eigenschaften

NameBeschreibung
CleanupOptions { get; set; }Ruft eine Reihe von Flags ab, die angeben, welche Elemente beim Seriendruck entfernt werden sollen, oder legt diese fest.
CleanupParagraphsWithPunctuationMarks { get; set; }Ruft einen Wert ab oder legt diesen fest, der angibt, ob Absätze mit Satzzeichen als leer betrachtet werden und entfernt werden sollten, wenn dieRemoveEmptyParagraphs Option ist angegeben.
FieldMergingCallback { get; set; }Tritt beim Serienbrief auf, wenn im Dokument ein Serienbrieffeld gefunden wird.
MailMergeCallback { get; set; }Ermöglicht die Verarbeitung bestimmter Ereignisse während des Seriendrucks.
MappedDataFields { get; }Gibt eine Sammlung zurück, die zugeordnete Datenfelder für den Seriendruckvorgang darstellt.
MergeDuplicateRegions { get; set; }Ruft einen Wert ab oder legt diesen fest, der angibt, ob alle Dokument-Seriendruckbereiche mit dem Namen einer Datenquelle beim Ausführen eines Seriendrucks mit Bereichen für die Datenquelle zusammengeführt werden sollen oder nur der erste.
MergeWholeDocument { get; set; }Ruft einen Wert ab oder legt diesen fest, der angibt, ob Felder im gesamten Dokument beim Ausführen eines Seriendrucks mit Regionen aktualisiert werden.
PreserveUnusedTags { get; set; }Ruft einen Wert ab oder legt diesen fest, der angibt, ob die nicht verwendeten „Mustache“-Tags beibehalten werden sollen.
RegionEndTag { get; set; }Ruft ein End-Tag für den Seriendruckbereich ab oder legt es fest.
RegionStartTag { get; set; }Ruft ein Start-Tag für den Seriendruckbereich ab oder legt es fest.
RestartListsAtEachSection { get; set; }Ruft einen Wert ab oder legt diesen fest, der angibt, ob Listen in jedem Abschnitt nach der Ausführung eines Seriendrucks neu gestartet werden.
RetainFirstSectionStart { get; set; }Ruft einen Wert ab oder legt ihn fest, der angibt, ob dieSectionStart des ersten Dokumentabschnitts und seiner Kopien für nachfolgende Datenquellenzeilen bleiben beim Seriendruck erhalten oder werden entsprechend dem Verhalten von MS Word aktualisiert.
TrimWhitespaces { get; set; }Ruft einen Wert ab oder legt diesen fest, der angibt, ob nachgestellte und führende Leerzeichen aus Serienbriefwerten entfernt werden.
UnconditionalMergeFieldsAndRegions { get; set; }Ruft einen Wert ab oder legt diesen fest, der angibt, ob Zusammenführungsfelder und Zusammenführungsbereiche unabhängig von der Bedingung des übergeordneten IF-Felds zusammengeführt werden.
UseNonMergeFields { get; set; }WannWAHR , gibt an, dass der Seriendruck zusätzlich zu MERGEFIELD-Feldern auch in einigen anderen Feldtypen und auch in „{{fieldName}}“-Tags durchgeführt wird.
UseWholeParagraphAsRegion { get; set; }Ruft einen Wert ab oder legt diesen fest, der angibt, ob ein ganzer Absatz vorhanden istTableStart oderTableEnd field oder ein bestimmter Bereich dazwischenTableStart UndTableEnd Felder sollten in den Serienbriefbereich aufgenommen werden.

Methoden

NameBeschreibung
DeleteFields()Entfernt Serienbrieffelder aus dem Dokument.
Execute(DataRow)Führt einen Serienbrief von einem ausDatenzeile in das Dokument.
Execute(DataTable)Führt einen Serienbrief von einer Datentabelle in das Dokument durch.
Execute(DataView)Führt einen Serienbrief von einem ausDatenansicht in das Dokument.
Execute(IDataReader)Führt einen Serienbrief durchIDataReader in das Dokument.
Execute(IMailMergeDataSource)Führt einen Seriendruck aus einer benutzerdefinierten Datenquelle durch.
Execute(string[], object[])Führt einen Seriendruckvorgang für einen einzelnen Datensatz durch.
ExecuteADO(object)Führt einen Serienbrief von einem ADO-Recordset-Objekt in das Dokument durch.
ExecuteWithRegions(DataSet)Führt einen Serienbrief von einem ausDatensatz in ein Dokument mit Seriendruckbereichen.
ExecuteWithRegions(DataTable)Führt einen Serienbrief von einem ausDatentabelle in das Dokument mit Seriendruckbereichen.
ExecuteWithRegions(DataView)Führt einen Serienbrief von einem ausDatenansicht in das Dokument mit Seriendruckbereichen.
ExecuteWithRegions(IMailMergeDataSource)Führt einen Serienbrief aus einer benutzerdefinierten Datenquelle mit Serienbriefbereichen durch.
ExecuteWithRegions(IMailMergeDataSourceRoot)Führt einen Serienbrief aus einer benutzerdefinierten Datenquelle mit Serienbriefbereichen durch.
ExecuteWithRegions(IDataReader, string)Führt einen Serienbrief durchIDataReader in das Dokument mit Seriendruckbereichen.
ExecuteWithRegionsADO(object, string)Führt einen Serienbrief von einem ADO-Recordset-Objekt in das Dokument mit Serienbriefbereichen durch.
GetFieldNames()Gibt eine Sammlung von im Dokument verfügbaren Serienbrieffeldnamen zurück.
GetFieldNamesForRegion(string)Gibt eine Sammlung von Serienbrieffeldnamen zurück, die in der Region verfügbar sind.
GetFieldNamesForRegion(string, int)Gibt eine Sammlung von Serienbrieffeldnamen zurück, die in der Region verfügbar sind.
GetRegionsByName(string)Gibt eine Sammlung von Serienbriefregionen mit dem angegebenen Namen zurück.
GetRegionsHierarchy()Gibt eine vollständige Hierarchie der im Dokument verfügbaren Regionen (mit Feldern) zurück.

Bemerkungen

Damit der Seriendruckvorgang funktioniert, sollte das Dokument Word-Felder MERGEFIELD und (optional NEXT) enthalten. Während des Serienbriefvorgangs werden die Briefvorlagenfelder im Dokument durch Werte aus Ihrer Datenquelle ersetzt.

Es gibt zwei unterschiedliche Möglichkeiten, den Seriendruck zu verwenden: mit Seriendruckbereichen und ohne.

Der einfachste Seriendruck erfolgt ohne Regionen und ähnelt stark der Funktionsweise von Serienbrief in Word. VerwendenAusführen Methoden zum Zusammenführen von Informationen aus einer -Datenquelle, z. BDatentabelle ,Datensatz ,Datenansicht ,IDataReader oder ein Array von Objekten in Ihr Dokument. The MailMerge Das Objekt verarbeitet alle Datensätze der Datenquelle und kopiert und hängt den Inhalt des gesamten Dokuments für jeden Datensatz an.

Beachten Sie, wannMailMerge Wenn das Objekt auf ein NEXT-Feld trifft, wählt es den nächsten Datensatz in der Datenquelle aus und setzt die Zusammenführung fort, ohne Inhalte zu kopieren.

VerwendenExecuteWithRegions und andere Überladungen zum Zusammenführen von Informationen in einem -Dokument mit definierten Seriendruckbereichen. Sie können verwendenDatensatz ,Datentabelle ,Datenansicht oderIDataReader als Datenquellen für diesen Vorgang.

Sie müssen Serienbriefbereiche verwenden, wenn Sie Teile innerhalb des -Dokuments dynamisch vergrößern möchten. Ohne Seriendruckbereiche wird das gesamte Dokument für jeden Datensatz der Datenquelle wiederholt.

Beispiele

Zeigt, wie ein Serienbrief mit Daten aus einer DataTable ausgeführt wird.

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" });

    // Nachfolgend finden Sie zwei Möglichkeiten, eine DataTable als Datenquelle für einen Serienbrief zu verwenden.
    // 1 – Verwenden Sie die gesamte Tabelle für den Serienbrief, um für jede Zeile in der Tabelle ein Ausgabe-Serienbriefdokument zu erstellen:
    Document doc = CreateSourceDocExecuteDataTable();

    doc.MailMerge.Execute(table);

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

    // 2 – Verwenden Sie eine Zeile der Tabelle, um ein Ausgabe-Serienbriefdokument zu erstellen:
    doc = CreateSourceDocExecuteDataTable();

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

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

/// <summary>
/// Erstellt ein Serienbrief-Quelldokument.
/// </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;
}

Siehe auch