Mail Merge using Excel in Python

Mail merge är en smart teknik för att generera personliga dokument i stor skala. Oavsett om det handlar om fakturor, rapporter eller certifikat kan du använda en enda mall och fylla den med data från ett kalkylblad. Varje rad i din Excel-fil blir ett anpassat dokument. I det här inlägget kommer vi att visa dig hur du utför mail merge från Excel med hjälp av Python och Aspose.Cells-biblioteket.

Denna artikel täcker följande ämnen:

Python Excel Mail Merge Library

Vi kommer att använda Aspose.Cells for Python via .NET för att utföra postfusionsprocessen. Det gör det möjligt för dig att skapa, läsa och manipulera Excel-kalkylblad direkt från Python-kod. Med stöd för Smart Markers möjliggör biblioteket sömlös databindning och Excel-automatisering.

För att installera Aspose.Cells för Python via .NET:

pip install aspose-cells

Mail Merge using Aspose.Cells för Python

Till skillnad från Word använder Aspose.Cells Smart Markers för att utföra brevkoppling. Smart Markers är speciella taggar i Excel-mallar som systemet ersätter med faktisk data vid körning. Du definierar markörer som:

&=DataSource.ColumnName

Aspose.Cells bearbetar dessa markörer rad för rad, och ersätter dem med verkliga värden från din datakälla, som en lista av ordböcker eller ett DataTable-liknande objekt.

Förbered Excel-mallen

Skapa en fil (t.ex. Template.xlsx) med Smart Markers:

NamnE-postBelopp
&=Data.Namn&=Data.E-post&=Data.Belopp

Steg-för-steg-guide för att utföra mail merge med Python

Denna avsnitt beskriver proceduren för att utföra en e-postsammanfogning med hjälp av Excel-mallar och Aspose.Cells för Python via .NET API. Processen inkluderar att ladda en mallarbok, binda den till en datakälla, utföra Smart Marker-bearbetning och spara utdata.

Steg 1: Ladda mallarboken

För att börja, skapa ett Workbook-objekt genom att ladda Excel-filen som innehåller fördefinierade Smart Markers.

import aspose.cells as ac

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

Obs: Mallen måste innehålla Smart Markers formaterade som &=Data.FieldName.

Steg 2: Skapa och fyll i datakällan

Skapa en DataTable för att fungera som datakälla. Definiera de nödvändiga kolumnerna och lägg till datarader som motsvarar de Smart Markers i mallen.

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])

Varje kolumnnamn i DataTable bör matcha markeridentifierarna som används i Excel-mallen.

Steg 3: Binda data till arbetsboken

Använd WorkbookDesigner-klass för att koppla arbetsboken till datakällan. Detta gör det möjligt för dig att automatiskt fylla i Smart Markers under bearbetningen.

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

Steg 4: Bearbeta smarta markörer

Utför Smart Marker-ersättningen genom att anropa process()-metoden. Detta kommer att iterera över datakällan och infoga värden på motsvarande platser i arbetsboken.

designer.process()

Steg 5: Spara den sammanslagna arbetsboken

Spara den bearbetade arbetsboken på disken i Excel-format.

workbook.save("MergedOutput.xlsx")

(Optional) Export the Output as PDF

För att generera en PDF-version av den sammanfogade arbetsboken, konfigurera PDF-sparalternativ och specificera SaveFormat.PDF under export.

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

Full Python Code for Mail Merge

Följande exempel visar hela processen för att skapa en rekordsammanställning från Excel med Aspose.Cells för 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)

Se till att Smart Markers i Excel-mallen matchar kolumnnamnen som definieras i DataTable. Till exempel, &=Data.Name i mallen motsvarar en kolumn med namnet \"Name\" i datakällan.

Denna implementation automatiserar dokumentgenereringsuppgifter, såsom fakturor, rapporter eller certifikat utan att Microsoft Excel behöver vara installerat.

Output

Varje rad i datakällan genererar en ny personlig rad i Excel-filen där Smart Markers placerades.

Mail Merge från Excel i Python - Utdata

Mail Merge från Excel i Python - Utdata

Få en gratis licens

Du kan request a free temporary license för att utvärdera den fulla funktionen av Aspose.Cells för Python via .NET utan utvärderingsbegränsningar.

Denna licens möjliggör obegränsad testning av alla API-funktioner, inklusive mail merge, PDF-export och hantering av stora dataset.

Excel Mail Merge i Python: Kostnadsfria resurser

Slutsats

Mail merge från Excel med Python gör det enklare att generera dokument i stor skala. Med Aspose.Cells Smart Markers kan du snabbt automatisera denna process med bara några få rader kod. Oavsett om det handlar om att skicka fakturor, skapa certifikat eller generera rapporter, ger Python-API:et full kontroll och flexibilitet.

Behöver du hjälp? Gå med i vårt free support forum.

Se också