Злиття листів MS Word — популярна функція, яка дозволяє створювати листи, рахунки-фактури, конверти, звіти тощо. За допомогою злиття можна створити шаблон і заповнити його даними. У результаті для кожного запису в джерелі даних створюється документ. Щоб автоматизувати цю функцію, у цій статті описано, як виконувати злиття листів MS Word за допомогою Python. Ви дізнаєтеся, як створити шаблон злиття з нуля та заповнити його програмним шляхом.
- Бібліотека Python для автоматизації злиття листів MS Word
- Створіть шаблон злиття в MS Word
- Створіть документ Word за допомогою шаблону злиття
Бібліотека Python для автоматизації злиття листів MS Word
Щоб автоматизувати злиття листів MS Word, ми використаємо Aspose.Words for Python. Це потужна бібліотека, яка дозволяє створювати документи Word і працювати з ними. Крім того, це дозволяє створювати шаблони злиття та безперешкодно їх заповнювати. Aspose.Words for Python можна встановити з PyPI за допомогою такої команди pip.
pip install aspose-words
Створіть шаблон злиття в Python
Шаблон злиття містить поля злиття, які заповнюються значеннями в джерелі даних. Шаблон може мати формат DOT, DOTX, DOC або DOCX. Щоб створити шаблон злиття, ви можете використовувати MS Word. Однак, щоб автоматизувати цю процедуру в Python, ви можете виконати наведені нижче дії.
- Створити об’єкт класу DocumentBuilder.
- Вставте текст за допомогою методу DocumentBuilder.inserttextinput().
- Вставте поле злиття за допомогою методу DocumentBuilder.insertfield().
- Повторіть вставлення тексту та об’єднайте поля за потреби.
- Збережіть шаблон як файл за допомогою методу DocumentBuilder.document.save().
У наведеному нижче прикладі коду показано, як створити шаблон злиття DOCX за допомогою Python.
import aspose.words as aw
# Створіть конструктор документів
builder = aw.DocumentBuilder()
# Вставте поле введення тексту, унікальне ім’я цього поля – «Привіт», інші параметри визначають
# який це тип FormField, формат тексту, результат поля та максимальна довжина тексту (0 = без обмежень)
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)
# Вставте в документ розрив абзацу
builder.insert_paragraph()
# Вставте тіло листа
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()
# Вставте закінчення листа
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")
# Збережіть шаблон як файл DOCX
builder.document.save("mail_merge_template.docx")
Нижче наведено скріншот шаблону, який ми щойно створили за допомогою зразка коду вище.
Створіть документ Word за допомогою шаблону злиття в Python
Тепер, коли ви створили шаблон злиття, настав час заповнити його поля значеннями. Нижче наведено кроки для створення документа Word із шаблону злиття в Python.
- Завантажте шаблон злиття за допомогою класу документа.
- Викличте метод Document.mailmerge.execute() і передайте дані у вигляді масиву.
- Збережіть створений документ за допомогою методу Document.save().
У наведеному нижче прикладі коду показано, як створити документ Word із шаблону злиття.
import aspose.words as aw
# Завантажте шаблон злиття
doc = aw.Document("mail_merge_template.docx")
# Заповніть поля в документі даними
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"]
)
# Збережіть документ
doc.save("mail_merge_populated.docx")
На наступному знімку екрана показано документ Word, створений на основі шаблону злиття.
Отримайте безкоштовну ліцензію
Ви можете використовувати Aspose.Words for Python без оціночних обмежень, отримавши безкоштовну тимчасову ліцензію.
Висновок
Злиття листів MS Word — це корисна функція для створення документів Word із попередньо визначених шаблонів. Щоб автоматизувати злиття, у цій статті описано, як створити шаблони злиття та заповнити їх даними в Python. Ви також можете дослідити інші функції Aspose.Words for Python за допомогою документації. Якщо у вас виникнуть запитання, надішліть їх на нашому форумі.