Mail Merge using Excel in Python

Mail merge to inteligentna technika do generowania spersonalizowanych dokumentów na dużą skalę. Niezależnie od tego, czy są to faktury, raporty czy certyfikaty, możesz użyć jednego szablonu i wypełnić go danymi z arkusza kalkulacyjnego. Każdy wiersz w pliku Excel staje się dostosowanym dokumentem. W tym poście pokażemy, jak przeprowadzić mail merge z Excela za pomocą Python i biblioteki Aspose.Cells.

Ten artykuł porusza następujące tematy:

Biblioteka do korespondencji seryjnej w Excelu w Python

Będziemy używać Aspose.Cells for Python via .NET do przeprowadzenia scalania poczty. Umożliwia to tworzenie, odczytywanie i manipulowanie arkuszami kalkulacyjnymi Excel bezpośrednio z kodu Python. Dzięki wsparciu dla Smart Markers, biblioteka pozwala na bezproblemowe łączenie danych i automatyzację Excela.

Aby zainstalować Aspose.Cells for Python za pośrednictwem .NET:

pip install aspose-cells

Mail Merge przy użyciu Aspose.Cells for Python

W przeciwieństwie do Worda, Aspose.Cells używa inteligentnych znaczników do przeprowadzania scalania poczty. Inteligentne znaczniki to specjalne etykiety w szablonach Excela, które system zastępuje rzeczywistymi danymi w czasie rzeczywistym. Definiujesz znaczniki takie jak:

&=DataSource.ColumnName

Aspose.Cells przetwarza te znaczniki wiersz po wierszu, zastępując je rzeczywistymi wartościami z Twojego źródła danych, takimi jak lista słowników lub obiekt podobny do DataTable.

Przygotuj szablon Excela

Utwórz plik (np. Template.xlsx) z inteligentnymi znacznikami:

NameEmailAmount
&=Data.Name&=Data.Email&=Data.Amount

Krok po kroku przewodnik, jak wykonać korespondencję seryjną za pomocą Python

Ta sekcja opisuje procedurę wykonania operacji scalania poczty przy użyciu szablonów Excel i interfejsu API Aspose.Cells for Python przez .NET. Proces obejmuje załadowanie szablonu roboczego, powiązanie go z źródłem danych, wykonanie przetwarzania Inteligentnego Znaku oraz zapisanie wyniku.

Krok 1: Załaduj szablon roboczy

Aby zacząć, zainicjalizuj obiekt Workbook, ładując plik Excel, który zawiera zdefiniowane z góry Smart Markery.

import aspose.cells as ac

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

Uwaga: Szablon musi zawierać inteligentne znaczniki sformatowane jako &=Data.FieldName.

Krok 2: Utwórz i wypełnij źródło danych

Utwórz DataTable, aby służył jako źródło danych. Zdefiniuj wymagane kolumny i dodaj wiersze danych odpowiadające inteligentnym znakom w szablonie.

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

Każda nazwa kolumny w DataTable powinna odpowiadać identyfikatorom znaczników używanym w szablonie Excela.

Krok 3: Powiąż dane z arkuszem kalkulacyjnym

Użyj klasy WorkbookDesigner, aby powiązać skoroszyt z źródłem danych. To umożliwia automatyczne wypełnianie znaczników Smart podczas przetwarzania.

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

Krok 4: Przetwarzanie inteligentnych znaczników

Wykonaj zamianę Smart Marker, wywołując metodę process(). Spowoduje to iterację po źródle danych i wstawienie wartości w odpowiednich miejscach w skoroszycie.

designer.process()

Krok 5: Zapisz scalony skoroszyt

Zapisz przetworzony skoroszyt na dysku w formacie Excel.

workbook.save("MergedOutput.xlsx")

(Optional) Export the Output as PDF

Aby wygenerować wersję PDF scalonego skoroszytu, skonfiguruj opcje zapisu PDF i określ SaveFormat.PDF podczas eksportu.

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

Full Python Code for Mail Merge

Następujący przykład demonstruje pełny proces tworzenia korespondencji seryjnej z Excela przy użyciu 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)

Upewnij się, że Smart Markery w szablonie Excel odpowiadają nazwom kolumn określonym w DataTable. Na przykład, &=Data.Name w szablonie odpowiada kolumnie o nazwie \"Name\" w źródle danych.

Ta implementacja automatyzuje zadania generowania dokumentów, takie jak faktury, raporty czy certyfikaty, bez konieczności instalacji programu Microsoft Excel.

Output

Każdy wiersz w źródle danych generuje nowy spersonalizowany wiersz w pliku Excel, w którym umieszczono inteligentne znaczniki.

Mail Merge z Excela w Python - Wynik

Mail Merge z Excela w Python - Wynik

Get a Free License

Możesz request a free temporary license aby ocenić pełne możliwości Aspose.Cells for Python za pośrednictwem .NET bez ograniczeń oceny.

Ta licencja umożliwia nieograniczone testowanie wszystkich funkcji API, w tym łączenia poczty, eksportu PDF i obsługi dużych zbiorów danych.

Excel Mail Merge w Python: Darmowe zasoby

Wniosek

Mail merge z Excela przy użyciu Python ułatwia generowanie dokumentów na dużą skalę. Dzięki Smart Markers w Aspose.Cells możesz szybko zautomatyzować ten proces w zaledwie kilku linijkach kodu. Niezależnie od tego, czy chodzi o wysyłanie faktur, tworzenie certyfikatów, czy generowanie raportów, API Python zapewnia pełną kontrolę i elastyczność.

Potrzebujesz pomocy? Dołącz do naszego free support forum.

Zobacz także