Einleitung

Die Automatisierung der Erstellung personalisierter Dokumente—wie Berichte, Briefe und Rechnungen—kann Ihnen sowohl Zeit als auch Mühe sparen. Mit C# Mail Merge powered by Aspose.Words für .NET können Sie dies nahtlos erreichen. Dieser Leitfaden führt Sie durch die Verwendung des Aspose.Words Mail Merge Plugins, um eine effiziente und skalierbare Dokumentenerstellung in Ihren .NET-Anwendungen durchzuführen—ohne MS Word oder Office Interop benötigten. Am Ende sind Sie in der Lage, C# Mail Merge für die Berichtsautomatisierung zu integrieren und Ihren Berichterstattungsworkflow zu optimieren.


Inhaltsverzeichnis:


Was ist Mail Merge?

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

  • Personalisierte Briefe und Rechnungen erstellen.
  • Massenberichte mithilfe strukturierter Formate wie XML, JSON oder Datenbanken erstellen, was dynamische Berichterstellung mit C# und Aspose.Words ermöglicht.

Datenquellen für Mail Merge

Aspose.Words unterstützt eine Vielzahl von Datenquellen, einschließlich:

  • Objekte: Vorlagen mit Klasseninstanzen befüllen.
  • XML: Strukturierte Daten für dynamische Felder laden.
  • JSON: Einfaches Integrieren mit modernen APIs.
  • CSV: Tabellarische Daten für die Erstellung von Massendokumenten nutzen.
  • DataTable/DataSet: ADO.NET für die Datenbankintegration nutzen.

Vorbereitung der Vorlage für Mail Merge

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 und erfordert keinen bestimmten Stil. 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 MergeField aus.
  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, können Sie das Mail Merge ausführen, um Dokumente zu generieren. 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 Document.MailMerge.TrimWhitespaces.
  3. Führen Sie das Mail Merge mit der Methode Document.MailMerge.Execute() aus, indem Sie die Datenquelle als Parameter übergeben.
  4. Speichern Sie das generierte Dokument mit der Methode Document.Save(String).

Hier ist ein Codebeispiel, das zeigt, wie man die Berichterstellung in C# mit einem Array von Werten automatisiert:


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 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.

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

Mail Merge Vorlage für XML

Dieses Bild zeigt die erste Seite des resultierenden Word-Dokuments, das nach der Ausführung des Mail Merge erhalten 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 Merge zu konfigurieren, wenn jedes Merge-Feld begegnet wird. Die Implementierung der Methoden IFieldMergingCallback.FieldMerging und IFieldMergingCallback.ImageFieldMerging ermöglicht die Anpassung des Mail Merge-Vorgangs.

Unten finden Sie ein Codebeispiel, das zeigt, wie man während des Mail Merge benutzerdefinierte Formatierungen durch die bereitgestellte Beispielvorlage anwendet:

Das Folgende implementiert die Klasse HandleMergeFieldAlternatingRows.

Mail Merge mit Regionen in C#

In einigen Fällen müssen Sie einen bestimmten Bereich innerhalb des Word-Dokuments befüllen und wiederholen. Für solche Szenarien verwenden Sie Mail Merge mit Regionen. Um einen Bereich zu erstellen, geben Sie sowohl den Anfang als auch das Ende des Bereichs an; das Mail Merge wiederholt dann diesen Bereich für jeden Datensatz in der Datenquelle. Das folgende Vorlagenbeispiel enthält zwei Regionen—Bestellungen und Bestelldetails—unter Verwendung der Merge-Felder «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 veranschaulichen, wie man Daten aus einer Datenbank liest.

Verschachtelte Mail Merge-Regionen

Oft ist die Datenquelle in relationalen Formaten strukturiert. Zum Beispiel kann “Bestellungen” eine Eins-zu-viele-Beziehung zu “Bestelldetails” haben, die die Posten innerhalb einer Bestellung aufzeichnet. In solchen Szenarien verwenden Sie verschachteltes Mail Merge. Unten finden Sie eine Beispiel- Rechnungsvorlage, die sich gut für dieses Szenario eignet.

Mail Merge Vorlage mit Regionen

Die folgende XML-Datenquelle für unser Beispiel von verschachteltem 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 ist:

<?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 der Ausführung des verschachtelten Mail Merge erhalten wurde.

Word-Dokument nach Mail Merge

Fazit

Aspose.Words für .NET ist eine umfassende Mail Merge-API, die sowohl Standard- als auch erweiterte Funktionen bietet, die für .NET-Anwendungen geeignet sind. Mit nur wenigen Codezeilen können Sie nahtlos einfache oder komplexe Berichte aus verschiedenen Datenquellen erstellen. Für Hinweise zu den Best Practices der automatisierten 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.

Testen Sie Aspose.Words für .NET kostenlos

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

Siehe auch