Generujte dokumenty MS Word ze šablony hromadné korespondence v Python

Hromadná korespondence MS Word je oblíbená funkce, která vám umožňuje vytvářet dopisy, faktury, obálky, zprávy atd. Pomocí hromadné korespondence můžete vytvořit šablonu a naplnit ji daty. Výsledkem je vygenerování dokumentu pro každý záznam ve zdroji dat. Chcete-li tuto funkci automatizovat, tento článek popisuje, jak provést hromadnou korespondenci MS Word pomocí Python. Naučíte se, jak vytvořit šablonu hromadné korespondence od začátku a naplnit ji programově.

Knihovna Python pro automatizaci hromadné korespondence MS Word

Pro automatizaci hromadné korespondence MS Word použijeme Aspose.Words for Python. Je to výkonná knihovna, která vám umožní vytvářet a manipulovat s dokumenty Wordu. Navíc vám umožňuje vytvářet šablony hromadné korespondence a hladce je naplňovat. Aspose.Words for Python lze nainstalovat z PyPI pomocí následujícího příkazu pip.

pip install aspose-words 

Vytvořte šablonu hromadné korespondence v Python

Šablona hromadné korespondence obsahuje slučovací pole, která jsou naplněna hodnotami ve zdroji dat. Šablona může být ve formátu DOT, DOTX, DOC nebo DOCX. Chcete-li vytvořit šablonu hromadné korespondence, můžete použít MS Word. Chcete-li však tento postup v Python automatizovat, můžete postupovat podle níže uvedených kroků.

  • Vytvořte objekt třídy DocumentBuilder.
  • Vložte text pomocí metody DocumentBuilder.inserttextinput().
  • Vložte slučovací pole pomocí metody DocumentBuilder.insertfield().
  • Opakujte vkládání textu a slučovacích polí podle potřeby.
  • Uložte šablonu jako soubor pomocí metody DocumentBuilder.document.save().

Následující ukázka kódu ukazuje, jak vytvořit šablonu hromadné korespondence DOCX pomocí Python.

import aspose.words as aw

# Vytvořte tvůrce dokumentů
builder = aw.DocumentBuilder()

# Vložte textové vstupní pole jedinečné jméno tohoto pole je "Ahoj", ostatní parametry definují
# o jaký typ FormField se jedná, formát textu, výsledek pole a maximální délka textu (0 = bez omezení)
builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", "Hello ", 0)
builder.insert_field("MERGEFIELD CustomerFirstName \\* MERGEFORMAT")

builder.insert_text_input("TextInput1", aw.fields.TextFormFieldType.REGULAR, "", " ", 0)
builder.insert_field("MERGEFIELD CustomerLastName \\* MERGEFORMAT")

builder.insert_text_input("TextInput1", aw.fields.TextFormFieldType.REGULAR, "", " , ", 0)

# Vložte do dokumentu konec odstavce
builder.insert_paragraph()

# Vložte tělo pošty
builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", "Thanks for purchasing our ", 0)
builder.insert_field("MERGEFIELD ProductName \\* MERGEFORMAT")

builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", ", please download your Invoice at ", 0)
builder.insert_field("MERGEFIELD InvoiceURL \\* MERGEFORMAT")

builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", ". If you have any questions please call ", 0)
builder.insert_field("MERGEFIELD Supportphone \\* MERGEFORMAT")

builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", ", or email us at ", 0)
builder.insert_field("MERGEFIELD SupportEmail \\* MERGEFORMAT")

builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", ".", 0)

builder.insert_paragraph()

# Vložit konec pošty
builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", "Best regards,", 0)
builder.insert_break(aw.BreakType.LINE_BREAK)
builder.insert_field("MERGEFIELD EmployeeFullname \\* MERGEFORMAT")

builder.insert_text_input("TextInput1", aw.fields.TextFormFieldType.REGULAR, ",", " ", 0)
builder.insert_field("MERGEFIELD EmployeeDepartment \\* MERGEFORMAT")

# Uložte šablonu jako soubor DOCX
builder.document.save("mail_merge_template.docx")

Následuje snímek obrazovky šablony, kterou jsme právě vytvořili pomocí výše uvedeného ukázkového kódu.

vytvoření šablony hromadné korespondence v pythonu

Generujte dokument Word pomocí šablony hromadné korespondence v Python

Nyní, když jste vytvořili šablonu hromadné korespondence, je čas naplnit její pole hodnotami. Následují kroky ke generování dokumentu aplikace Word ze šablony hromadné korespondence v Python.

  • Načtěte šablonu hromadné korespondence pomocí třídy Document.
  • Zavolejte metodu Document.mailmerge.execute() a předejte data ve formě pole.
  • Uložte vygenerovaný dokument pomocí metody Document.save().

Následující ukázka kódu ukazuje, jak vygenerovat dokument aplikace Word ze šablony hromadné korespondence.

import aspose.words as aw

# Načtěte šablonu hromadné korespondence
doc = aw.Document("mail_merge_template.docx")

# Vyplňte pole v dokumentu údaji
doc.mail_merge.execute(["CustomerFirstName", "CustomerLastName", "ProductName", "InvoiceURL", "SupportPhone", "SupportEmail", "EmployeeFullname", "EmployeeDepartment"],
    ["John", "Doe", "Aspose.Words", "aspose.com", "111-222-333", "support@aspose.com", "Jimmy", "Sales"]
    )

# Uložte dokument
doc.save("mail_merge_populated.docx")

Následující snímek obrazovky ukazuje dokument aplikace Word, který jsme vygenerovali ze šablony hromadné korespondence.

vygenerovat dokument aplikace Word ze šablony hromadné korespondence v pythonu

Získejte bezplatnou licenci

Aspose.Words for Python můžete používat bez omezení hodnocení získáním bezplatné dočasné licence.

Závěr

Hromadná korespondence MS Word je užitečná funkce pro generování dokumentů aplikace Word z předdefinovaných šablon. Chcete-li automatizovat hromadnou korespondenci, tento článek se zabýval tím, jak vytvořit šablony hromadné korespondence a naplnit je daty v Python. Můžete také prozkoumat další funkce Aspose.Words for Python pomocí dokumentace. V případě, že byste měli nějaké dotazy, neváhejte je zveřejnit na našem fóru.

Viz také