Mail Merge mit Excel in Python

Mail-Merge ist eine intelligente Technik, um personalisierte Dokumente im großen Maßstab zu erstellen. Ob Rechnungen, Berichte oder Zertifikate, Sie können eine einzige Vorlage verwenden und diese mit Daten aus einer Tabelle füllen. Jede Zeile in Ihrer Excel-Datei wird zu einem benutzerdefinierten Dokument. In diesem Beitrag zeigen wir Ihnen, wie Sie einen Mail-Merge aus Excel mit Python unter Verwendung der Aspose.Cells-Bibliothek durchführen können.

Dieser Artikel behandelt die folgenden Themen:

Python Excel-Mail-Merge-Bibliothek

Wir werden Aspose.Cells for Python via .NET verwenden, um den Serienbrief durchzuführen. Es ermöglicht Ihnen, Excel-Tabellen direkt aus Python-Code zu erstellen, zu lesen und zu manipulieren. Mit Unterstützung für Smart Markers ermöglicht die Bibliothek nahtloses Datenbinden und Excel-Automatisierung.

Um Aspose.Cells for Python über .NET zu installieren:

pip install aspose-cells

Mail Merge mit Aspose.Cells for Python

Im Gegensatz zu Word verwendet Aspose.Cells Smart Markers, um einen Serienbrief durchzuführen. Smart Markers sind spezielle Tags in Excel-Vorlagen, die das System zur Laufzeit durch tatsächliche Daten ersetzt. Sie definieren Marker wie:

&=DataSource.ColumnName

Aspose.Cells bearbeitet diese Markierungen zeilenweise und ersetzt sie durch echte Werte aus Ihrer Datenquelle, wie z.B. einer Liste von Dictionaries oder einem DataTable-ähnlichen Objekt.

Bereite die Excel-Vorlage vor

Erstellen Sie eine Datei (z. B. Template.xlsx) mit Smart Markern:

NameE-MailBetrag
&=Data.Name&=Data.Email&=Data.Amount

Schritt-für-Schritt-Anleitung zur Durchführung eines Mail-Merge mit Python

Dieser Abschnitt beschreibt das Verfahren zur Ausführung eines Serienbriefvorgangs mithilfe von Excel-Vorlagen und der Aspose.Cells for Python über die .NET API. Der Prozess umfasst das Laden einer Vorlagenarbeitsmappe, das Binden an eine Datenquelle, das Ausführen der Smart Marker-Verarbeitung und das Speichern der Ausgabe.

Schritt 1: Laden Sie die Vorlagenarbeitsmappe

Um zu beginnen, instanziieren Sie ein Workbook Objekt, indem Sie die Excel-Datei laden, die vordefinierte Smart Markers enthält.

import aspose.cells as ac

workbook = ac.Workbook("Template.xlsx")

Hinweis: Die Vorlage muss Smart Markers enthalten, die als &=Data.FieldName formatiert sind.

Schritt 2: Erstellen und Befüllen der Datenquelle

Erstellen Sie eine DataTable, die als Datenquelle dient. Definieren Sie die erforderlichen Spalten und fügen Sie Datenzeilen hinzu, die den Smart Markern in der Vorlage entsprechen.

table = ac.DataTable("Data")
table.columns.add("Name")
table.columns.add("Email")
table.columns.add("Amount")

table.rows.add(["Alice", "alice@example.com", 1000])
table.rows.add(["Bob", "bob@example.com", 1500])

Jeder Spaltenname in der DataTable sollte mit den Marker-Identifikatoren übereinstimmen, die in der Excel-Vorlage verwendet werden.

Schritt 3: Binden Sie die Daten an die Arbeitsmappe

Verwenden Sie die WorkbookDesigner Klasse, um das Arbeitsbuch mit der Datenquelle zu verknüpfen. Dadurch können Sie Smart Markers während der Verarbeitung automatisch befüllen.

designer = ac.WorkbookDesigner()
designer.workbook = workbook
designer.set_data_source(table)

Schritt 4: Verarbeiten von Smart Markern

Führen Sie den Smart Marker-Ersatz aus, indem Sie die Methode process() aufrufen. Dies wird über die Datenquelle iterieren und Werte an den entsprechenden Stellen in der Arbeitsmappe einfügen.

designer.process()

Schritt 5: Speichern Sie die zusammengeführte Arbeitsmappe

Speichern Sie die verarbeitete Arbeitsmappe im Excel-Format auf der Festplatte.

workbook.save("MergedOutput.xlsx")

(Optional) Export the Output as PDF

Um eine PDF-Version der zusammengeführten Arbeitsmappe zu erstellen, konfigurieren Sie die PDF-Speichereinstellungen und geben Sie SaveFormat.PDF während des Exports an.

pdf_options = ac.PdfSaveOptions()
workbook.save("MergedOutput.pdf", ac.SaveFormat.PDF)

Full Python Code for Mail Merge

Das folgende Beispiel zeigt den vollständigen Prozess zur Erstellung eines Serienbriefs aus Excel mit Aspose.Cells for Python.

import aspose.cells as ac

# Load template
workbook = ac.Workbook("Template.xlsx")

# Create data source
table = ac.DataTable("Data")
table.columns.add("Name")
table.columns.add("Email")
table.columns.add("Amount")
table.rows.add(["Alice", "alice@example.com", 1000])
table.rows.add(["Bob", "bob@example.com", 1500])

# Connect data source
designer = ac.WorkbookDesigner()
designer.workbook = workbook
designer.set_data_source(table)
designer.process()

# Save output
workbook.save("MergedOutput.xlsx")

# Export to PDF
pdf_options = ac.PdfSaveOptions()
workbook.save("MergedOutput.pdf", ac.SaveFormat.PDF)

Stellen Sie sicher, dass die Smart Markers in der Excel-Vorlage mit den Spaltennamen übereinstimmen, die im DataTable definiert sind. Zum Beispiel entspricht &=Data.Name in der Vorlage einer Spalte mit dem Namen \"Name\" in der Datenquelle.

Diese Implementierung automatisiert Dokumentenerstellungsaufgaben wie Rechnungen, Berichte oder Zertifikate, ohne dass Microsoft Excel installiert sein muss.

Output

Jede Zeile in der Datenquelle generiert eine neue personalisierte Zeile in der Excel-Datei, in der die Smart Marker platziert wurden.

Mail Merge aus Excel in Python - Ausgabe

Mail Merge aus Excel in Python - Ausgabe

Erhalten Sie eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz anfordern, um die vollen Funktionen von Aspose.Cells for Python über .NET ohne Evaluierungsbeschränkungen zu bewerten.

Diese Lizenz ermöglicht uneingeschränkte Tests aller API funktionen, einschließlich Serienbrief, PDF-Export und Verarbeitung großer Datensätze.

Excel Mail Merge in Python: Kostenlose Ressourcen

Schlussfolgerung

Mail-Merge aus Excel mit Python macht es einfacher, Dokumente im großen Maßstab zu erstellen. Mit Aspose.Cells Smart Markern können Sie diesen Prozess schnell in nur wenigen Codezeilen automatisieren. Ob es darum geht, Rechnungen zu versenden, Zertifikate zu erstellen oder Berichte zu generieren, die Python-API bietet volle Kontrolle und Flexibilität.

Need help? Join our free support forum.

Siehe auch