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
- Vytvořte šablonu hromadné korespondence MS Word
- Vygenerujte dokument Word pomocí šablony hromadné korespondence
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.
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.
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.