Einführung

Sparen Sie Zeit und Mühe, indem Sie die Erstellung personalisierter Dokumente wie Berichte, Briefe und Rechnungen mit C# Mail Merge von Aspose.Words für .NET automatisieren. Diese Anleitung erklärt, wie Sie das Aspose.Words Mail Merge Plugin nutzen, um eine effiziente und skalierbare Dokumentenerstellung in Ihren .NET-Anwendungen durchzuführen – ganz ohne MS Word oder Office Interop. Sie lernen, C# Mail Merge für die Berichtsautomatisierung zu integrieren, wodurch Sie Ihren Reporting-Workflow optimieren können.


Inhalte:


Was ist Mail Merge?

Mail Merge ist eine Methode zur dynamischen Erstellung von Dokumenten durch das Befüllen von Vorlagen mit Daten aus verschiedenen Quellen. Mit Aspose.Words können Sie Aufgaben wie die folgenden nahtlos automatisieren:

  • Erstellen von Briefen und Rechnungen mit personalisierten Details.
  • Erstellen von Massendokumenten mit Daten aus strukturierten Formaten wie XML, JSON oder Datenbanken, die dynamische Berichterstellung mit C# und Aspose.Words ermöglichen.

Datenquellen für Mail Merge

Aspose.Words unterstützt verschiedene Datenquellen:

  • Objekte: Vorlagen mit Klasseninstanzen befüllen.
  • XML: Strukturierte Daten für dynamische Felder laden.
  • JSON: Einfach mit modernen APIs integrieren.
  • CSV: Tabellarische Daten für die Massendokumentenerstellung nutzen.
  • DataTable/DataSet: ADO.NET für die Datenbankintegration verwenden.

Vorlage für Mail Merge vorbereiten

Die Mail Merge-Vorlage ist das Dokument, das Merge-Felder enthält, die während der Ausführung mit Daten aus Ihrer angegebenen Datenquelle befüllt werden. Die Vorlage kann im DOC- oder DOCX-Format vorliegen; sie benötigt nicht unbedingt einen spezifischen Vorlagenstil. Befolgen Sie diese Schritte, um eine Mail Merge-Vorlage zu erstellen:

  1. Öffnen Sie Ihr Dokument oder erstellen Sie ein neues in MS Word.
  2. Platzieren Sie den Cursor an der Stelle, an der Sie ein Merge-Feld einfügen möchten.
  3. Wählen Sie im Menü Einfügen die Option Feld.
  4. Wählen Sie aus der Liste der Feldnamen die Option MergeField.
  5. Geben Sie einen Namen für das Merge-Feld im Feld Feldname ein und klicken Sie auf OK.
  6. Speichern Sie das Dokument.

Der folgende Screenshot veranschaulicht ein Beispielvorlage Dokument.

Mail Merge Vorlage

.NET Mail Merge API - Installation

Sie können Aspose.Words für .NET auf verschiedene Arten installieren:

Mail Merge in Word-Dokument mit C# durchführen

Sobald Ihre Vorlage bereit ist, führen Sie das Mail Merge durch, um Dokumente zu erstellen. Hier sind die Schritte, um Mail Merge auf Ihrer vorbereiteten Vorlage durchzuführen:

  1. Laden Sie das Vorlagendokument mit der Document Klasse.
  2. Setzen Sie erforderliche Mail Merge-Optionen, wie z. B. Document.MailMerge.TrimWhitespaces.
  3. Führen Sie das Mail Merge mit der Document.MailMerge.Execute() Methode aus und übergeben Sie die Datenquelle als Parameter.
  4. Speichern Sie das generierte Dokument mit der Document.Save(String) Methode.

Hier ist ein Codebeispiel, das demonstriert, wie Sie die Berichterstellung in C# mit einem Array von Werten automatisieren:


Word-Dokument nach Mail Merge

Mail Merge in C# ausführen

Mail Merge mit XML-Datenquelle in C# durchführen

XML-Dateien werden häufig zum Speichern und Übertragen von Daten verwendet. Aspose.Words für .NET unterstützt auch XML als Datenquelle für Mail Merge-Operationen. Lesen Sie einfach das XML in ein DataSet Objekt und führen Sie das Mail Merge aus. Unten finden Sie eine Beispiel-XML-Datei für unseren Anwendungsfall.

<customers>
    <customer Name="John Ben Jan" ID="1" Domain="History" City="Boston"/>
    <customer Name="Lisa Lane" ID="2" Domain="Chemistry" City="LA"/>
    <customer Name="Dagomir Zits" ID="3" Domain="Heraldry" City="Milwaukee"/>
    <customer Name="Sara Careira Santy" ID="4" Domain="IT" City="Miami"/>
</customers>

Das folgende Codebeispiel ruft Daten aus einer XML-Datenquelle ab und führt das Mail Merge mit C# aus.

Nachfolgend finden Sie die Mail Merge Vorlage, die mit Daten aus der XML-Datei befüllt wird.

Mail Merge-Vorlage für XML

Dieses Bild stellt die erste Seite des resultierenden Word-Dokuments dar, das nach dem Ausführen des Mail Merges erstellt wurde.

Mail Merge mit XML in C# ausführen

Benutzerdefinierte Formatierung von Merge-Feldern

Aspose.Words für .NET bietet erweiterte Steuerung über den Mail Merge-Prozess. Die Eigenschaft MailMerge.FieldMergingCallback ermöglicht es Ihnen, das Verhalten des Mail Merges zu konfigurieren, sobald ein Merge-Feld begegnet wird. Die Implementierung der Methoden IFieldMergingCallback.FieldMerging und IFieldMergingCallback.ImageFieldMerging ermöglicht die Anpassung des Mail Merge-Vorgangs.

Nachfolgend finden Sie ein Codebeispiel, das zeigt, wie Sie während des Mail Merges durch die bereitgestellte Beispielvorlage eine benutzerdefinierte Formatierung anwenden können:

Die folgende Implementierung zeigt die HandleMergeFieldAlternatingRows Klasse.

Mail Merge mit Regionen in C#

In bestimmten Fällen müssen Sie eine bestimmte Region innerhalb des Word-Dokuments befüllen und wiederholen. Für solche Fälle nutzen Sie Mail Merge mit Regionen. Um eine Region zu erstellen, geben Sie sowohl den Anfang als auch das Ende der Region an; das Mail Merge wird dann diese Region für jeden Datensatz in der Datenquelle wiederholen. Die folgende Beispielvorlage enthält zwei Regionen – Bestellungen und Bestelldetails – mit den Merge-Feldern «TableStart:Orders», «TableEnd:Orders», «TableStart:OrderDetails» und «TableEnd:OrderDetails».

Mail Merge mit Regionen

Hier ist ein Codebeispiel, das das Mail Merge basierend auf Regionen für die zuvor erwähnte Vorlage ausführt.

Die folgenden Methoden zeigen, wie Daten aus einer Datenbank gelesen werden.

Verschachteltes Mail Merge

Häufig sind die Daten aus der Quelle in relationalen Formaten strukturiert. Beispielsweise könnte es eine Eins-zu-Viele-Beziehung zwischen “Bestellungen” und “Bestelldetails” geben, die die Posten innerhalb einer Bestellung aufzeichnet. In solchen Szenarien verwenden Sie ein verschachteltes Mail Merge. Unten finden Sie eine Beispiel- Rechnungsvorlage, die gut für dieses Szenario geeignet ist.

Mail Merge-Vorlage mit Regionen

Die folgende XML-Datenquelle für unser Beispiel eines verschachtelten Mail Merge.

<?xml version="1.0" encoding="utf-8"?>
<Orders xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="OrdersSchema.xsd">
    <Order>
        <Number>23</Number>
        <Address>Nelson Street</Address>
        <Suburb>Howick</Suburb>
        <City>Auckland</City>
        <Phonenumber>543 1234</Phonenumber>
        <Date>03/01/2010</Date>
        <Total>14.00</Total>
        <Item>
            <Name>BBQ Chicken Pizza</Name>
            <Price>6.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>6.00</ItemTotal>
        </Item>
        <Item>
            <Name>1.5 Litre Coke</Name>
            <Price>4.00</Price>
            <Quantity>2</Quantity>
            <ItemTotal>8.00</ItemTotal>
        </Item>
    </Order>
    <Order>
        <Number>10</Number>
        <Address>Parkville Avenue</Address>
        <Suburb>Pakuranga</Suburb>
        <City>Auckland</City>
        <Phonenumber>548 7342</Phonenumber>
        <Date>05/03/2010</Date>
        <Total>6.00</Total>
        <Item>
            <Name>Hawaiian Pizza</Name>
            <Price>4.00</Price>
            <Quantity>1</Quantity>
            <ItemTotal>4.00</ItemTotal>
        </Item>
        <Item>
            <Name>Fries</Name>
            <Price>1.00</Price>
            <Quantity>2</Quantity>
            <ItemTotal>2.00</ItemTotal>
        </Item>
    </Order>
</Orders>

Die entsprechende OrderSchema.xsd Datei für dieses XML lautet:

<?xml version="1.0" encoding ="utf-8"?>
<xs:schema id="OrdersSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Orders">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Order">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Number"/>
                            <xs:element name="Address"/>
                            <xs:element name="Suburb"/>
                            <xs:element name="City"/>
                            <xs:element name="Phonenumber"/>
                            <xs:element name="Date"/>
                            <xs:element name="Total"/>
                            <xs:element name="Item">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="Name"/>
                                        <xs:element name="Price"/>
                                        <xs:element name="Quantity"/>
                                        <xs:element name="ItemTotal"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Das folgende Codebeispiel führt das verschachtelte Mail Merge mit C# aus.

Word-Dokument nach Mail Merge

Unten sehen Sie die erste Seite des resultierenden Word-Dokuments, das nach dem Ausführen des verschachtelten Mail Merges erstellt wurde.

Word-Dokument nach Mail Merge

Fazit

Aspose.Words für .NET ist eine umfassende Mail Merge API, die sowohl standardmäßige als auch erweiterte Funktionen bietet, die für .NET-Anwendungen geeignet sind. Mit nur wenigen Codezeilen können Sie aus verschiedenen Datenquellen nahtlos einfache oder komplexe Berichte erstellen. Für Anleitungen zu den Best Practices für automatisierte Berichterstellung in .NET konsultieren Sie die Dokumentation. Um mit Aspose.Words für .NET zu beginnen, erkunden Sie die verfügbaren Entwicklerhandbücher und Beispielcode auf GitHub. Das Aspose Plugin bietet ebenfalls erweiterte Funktionen zur Berichterstellung.

Probieren Sie Aspose.Words für .NET kostenlos aus

Sie können eine kostenlose temporäre Lizenz erwerben, um Aspose.Words für .NET ohne Einschränkungen auszuprobieren. Holen Sie sich jetzt Ihre temporäre Lizenz.

Siehe auch