MS Word sammanslagning är en populär funktion som låter dig skapa brev, fakturor, kuvert, rapporter, etc. Med hjälp av sammanslagning kan du skapa en mall och fylla i den med data. Som ett resultat genereras ett dokument för varje post i datakällan. För att automatisera den här funktionen tar den här artikeln upp hur man utför MS Word-utskick med Python. Du kommer att lära dig hur du skapar en mall för koppling av e-post från början och fyller i den programmatiskt.
- Python-bibliotek för att automatisera MS Word Mail Merge
- Skapa en MS Word Mail Merge-mall
- Skapa Word-dokument med hjälp av mall för sammankoppling av brev
Python-bibliotek för att automatisera MS Word Mail Merge
För att automatisera MS Word-utskick kommer vi att använda Aspose.Words for Python. Det är ett kraftfullt bibliotek som låter dig skapa och manipulera Word-dokument. Dessutom låter det dig skapa mallar för sammanslagning och fylla i dem sömlöst. Aspose.Words för Python kan installeras från PyPI med följande pip-kommando.
pip install aspose-words
Skapa en mall för e-postkoppling i Python
En kopplingsmall innehåller kopplingsfält som är ifyllda med värdena i datakällan. Mallen kan ha formatet DOT, DOTX, DOC eller DOCX. För att skapa en kopplingsmall kan du använda MS Word. Men för att automatisera denna procedur i Python kan du följa stegen nedan.
- Skapa ett objekt av klassen DocumentBuilder.
- Infoga text med metoden DocumentBuilder.inserttextinput().
- Infoga sammanslagningsfältet med metoden DocumentBuilder.insertfield().
- Upprepa infogning av text och slå samman fält efter behov.
- Spara mallen som en fil med metoden DocumentBuilder.document.save().
Följande kodexempel visar hur man skapar en DOCX-mall för koppling av brev med Python.
import aspose.words as aw
# Skapa en dokumentbyggare
builder = aw.DocumentBuilder()
# Infoga ett textinmatningsfält det unika namnet på detta fält är "Hej", de andra parametrarna definierar
# vilken typ av FormField det är, formatet på texten, fältresultatet och den maximala textlängden (0 = ingen gräns)
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)
# Infoga en styckebrytning i dokumentet
builder.insert_paragraph()
# Infoga meddelandetext
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()
# Infoga e-postslut
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")
# Spara mallen som en DOCX-fil
builder.document.save("mail_merge_template.docx")
Följande är skärmdumpen av mallen vi just har skapat med hjälp av kodexemplet ovan.
Generera Word-dokument med Mail Merge-mall i Python
Nu när du har skapat mallen för sammankoppling av utskrifter är det dags att fylla i dess fält med värden. Följande är stegen för att skapa ett Word-dokument från en kopplingsmall i Python.
- Ladda kopplingsmallen med dokumentklassen.
- Anropa metoden Document.mailmerge.execute() och skicka data i form av en array.
- Spara det genererade dokumentet med metoden Document.save().
Följande kodexempel visar hur man genererar ett Word-dokument från en mall för sammanslagning.
import aspose.words as aw
# Ladda kopplingsmallen
doc = aw.Document("mail_merge_template.docx")
# Fyll i fälten i dokumentet med data
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"]
)
# Spara dokumentet
doc.save("mail_merge_populated.docx")
Följande skärmdump visar Word-dokumentet som vi har genererat från mallen för sammankoppling av brev.
Skaffa en gratis licens
Du kan använda Aspose.Words för Python utan utvärderingsbegränsningar genom att skaffa en gratis tillfällig licens.
Slutsats
MS Word-utskick är en användbar funktion för att skapa Word-dokument från fördefinierade mallar. För att automatisera kopplingen av e-post, behandlade den här artikeln hur du skapar mallar för koppling av e-post och fyller dem med data i Python. Du kan också utforska andra funktioner i Aspose.Words for Python med hjälp av dokumentationen. Om du skulle ha några frågor får du gärna posta dem på vårt forum.