Generieren Sie Word aus der Vorlage in C#

Die Automatisierung der Dokumentenerstellung ist für Unternehmen, die dynamische Berichte, Rechnungen und Briefe erstellen möchten, unerlässlich. Mit Aspose.Words Mail Merge für .NET können Sie Word-Vorlagen effizient mit Daten aus verschiedenen Quellen, einschließlich Objekten, CSV, JSON und XML, befüllen. Dieser Leitfaden wird Sie durch die Nutzung von Mail Merge in C# für optimierte und automatisierte Dokumenten-Workflows führen, wobei der Schwerpunkt auf dynamischer Word-Dokumentenerstellung mit C# .NET liegt.


Abgedeckte Themen:


Überblick über Mail Merge für .NET

Aspose.Words Mail Merge für .NET ermöglicht Entwicklern die Erstellung personalisierter Dokumente aus vordefinierten Vorlagen, die Zusammenführungsfelder enthalten. Dieses Plugin ist für eine nahtlose Integration in .NET-Umgebungen konzipiert und bietet die Möglichkeit,:

  • Vorlagen dynamisch mit Daten zu befüllen und die .NET-Framework Word-Dokumentenerstellung zu unterstützen.
  • Effizient eine große Anzahl von Dokumenten zu generieren und die .NET-Mail-Merge-Lösung für große Datensätze zu nutzen.
  • Konsistente Formatierungen über alle Ausgaben hinweg sicherzustellen und die Best Practices für C# Word-Dokumentvorlagen zu verbessern.

Hauptmerkmale:

  1. Multi-Source-Unterstützung: Verwenden Sie Daten aus Objekten, Datenbanken, XML, JSON und CSV, um angepasste Word-Dokumente mit C# zu erstellen.
  2. Hohe Leistung: Effiziente Handhabung großer Datensätze und Massenoperationen für dynamische Word-Dokumentenerstellung mit .NET Core.
  3. Anpassbare Vorlagen: Erstellen Sie Vorlagen mit Platzhaltern für die Dateneinfügung und nutzen Sie die .NET Word Mail Merge Automatisierungs-Funktionen.

Einrichtung

Um zu beginnen, installieren Sie Aspose.Words über NuGet:

PM> Install-Package Aspose.Words

Generieren Sie ein Word-Dokument aus einer Vorlage mit C#-Objekten

Lassen Sie uns damit beginnen, eine Word-Vorlage mit C#-Objekten zu befüllen. Wir werden ein Word-Dokument (DOC/DOCX) mit den folgenden Platzhaltern erstellen:

<<[sender.Name]>> sagt: "<<[sender.Message]>>."

In diesem Beispiel ist sender eine Instanz einer Klasse, die wir verwenden werden, um die Vorlage mit dem C#-Ansatz zur Generierung von Word-Dokumenten aus Datenbanken zu befüllen.

Als Nächstes werden wir die Reporting-Engine von Aspose.Words verwenden, um das Word-Dokument aus der Vorlage und der Instanz der Sender-Klasse zu generieren, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie eine Instanz der Document Klasse und initialisieren Sie sie mit dem Pfad zur Word-Vorlage.
  2. Erstellen und initialisieren Sie ein Objekt der Sender-Klasse.
  3. Instanziieren Sie die ReportingEngine Klasse.
  4. Befüllen Sie die Vorlage mit ReportingEngine.BuildReport(), die die Instanz des Dokuments, die Datenquelle und den Namen der Datenquelle als Parameter erhält.
  5. Speichern Sie das generierte Word-Dokument mit Document.Save().

Hier ist das Codebeispiel, das zeigt, wie man ein Word-Dokument aus einer Vorlage generiert in C#.

Ausgabe

Generieren Sie ein Word-Dokument aus einer XML-Datenquelle in C#

Um ein Word-Dokument aus einer XML-Datenquelle zu generieren, verwenden wir eine komplexere Word-Vorlage mit den folgenden Platzhaltern:

<<foreach [in persons]>>Name: <<[Name]>>, Alter: <<[Age]>>, Geburtsdatum: <<[Birth]:"dd.MM.yyyy">>
<</foreach>>
Durchschnittsalter: <<[persons.Average(p => p.Age)]>>

Die in diesem Beispiel verwendete XML-Datenquelle ist unten dargestellt.

Um ein Word-Dokument aus einer XML-Datenquelle zu erstellen, befolgen Sie diese Schritte:

  1. Erstellen Sie eine Instanz der Document-Klasse und initialisieren Sie sie mit dem Pfad zur Word-Vorlage.
  2. Erstellen Sie eine Instanz der XmlDataSource Klasse und initialisieren Sie sie mit dem Pfad zur XML-Datei.
  3. Instanziieren Sie die ReportingEngine Klasse.
  4. Verwenden Sie die ReportingEngine.BuildReport() Methode, um die Word-Vorlage zu befüllen.
  5. Speichern Sie das generierte Word-Dokument mit der Document.Save() Methode.

Hier ist das Codebeispiel, das zeigt, wie man ein Word-Dokument aus einer XML-Datenquelle generiert in C#.

Ausgabe

Generieren Sie ein Word-Dokument aus einer JSON-Datenquelle in C#

Als Nächstes wollen wir erkunden, wie man ein Word-Dokument mit einer JSON-Datenquelle generiert. In diesem Beispiel erstellen wir eine Liste von Kunden, die nach ihren Managern segmentiert ist. Die Word-Vorlage sieht so aus:

<<foreach [in managers]>>Manager: <<[Name]>>
Verträge:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

Die entsprechende JSON-Datenquelle, die wir verwenden werden, um die Vorlage zu befüllen, ist unten:

Um das Word-Dokument aus JSON zu generieren, verwenden wir die JsonDataSource Klasse, um die Datenquelle zu laden, und die verbleibenden Schritte folgen der vorherigen Struktur. Hier ist das Codebeispiel, das zeigt, wie man ein Word-Dokument aus der JSON-Vorlage generiert in C#.

Ausgabe

Generieren Sie ein Word-Dokument aus einer CSV-Datenquelle in C#

Um das Word-Dokument aus einer CSV-Quelle zu generieren, verwenden wir die folgende Word-Vorlage:

<<foreach [in persons]>>Name: <<[Column1]>>, Alter: <<[Column2]>>, Geburtsdatum: <<[Column3]:"dd.MM.yyyy">>
<</foreach>>
Durchschnittsalter: <<[persons.Average(p => p.Column2)]>>

Die Vorlage wird mit den folgenden CSV-Daten befüllt:

Jetzt werfen wir einen Blick auf den C#-Code. Die Schritte bleiben gleich, mit einer wichtigen Ausnahme: Wir werden die CsvDataSource Klasse verwenden, um die CSV-Daten zu laden. Das folgende Codebeispiel zeigt, wie man das Word-Dokument aus einer CSV-Datenquelle generiert.

Ausgabe

Testen Sie Aspose.Words für .NET kostenlos

Sie können Aspose.Words für .NET mit einer kostenlosen vorübergehenden Lizenz ausprobieren.

Fazit

In diesem Artikel haben Sie gelernt, wie man Word-Dokumente aus Vorlagen mit C# generiert. Sie haben erkundet, wie man verschiedene Datenquellen wie Objekte, XML, JSON und CSV für dynamische Dokumentenerstellung in .NET nutzt. Für weitere Einblicke in die Möglichkeiten der .NET Word-Vorlagenverarbeitung tauchen Sie in die Dokumentation ein und zögern Sie nicht, über unser Forum Kontakt aufzunehmen.

Siehe auch