Створюйте документи MS Word із шаблону злиття в Python

Злиття листів MS Word — популярна функція, яка дозволяє створювати листи, рахунки-фактури, конверти, звіти тощо. За допомогою злиття можна створити шаблон і заповнити його даними. У результаті для кожного запису в джерелі даних створюється документ. Щоб автоматизувати цю функцію, у цій статті описано, як виконувати злиття листів MS Word за допомогою Python. Ви дізнаєтеся, як створити шаблон злиття з нуля та заповнити його програмним шляхом.

Бібліотека 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")

Нижче наведено скріншот шаблону, який ми щойно створили за допомогою зразка коду вище.

створення шаблону злиття в Python

Створіть документ 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, створений на основі шаблону злиття.

створити документ Word із шаблону злиття в Python

Отримайте безкоштовну ліцензію

Ви можете використовувати Aspose.Words for Python без оціночних обмежень, отримавши безкоштовну тимчасову ліцензію.

Висновок

Злиття листів MS Word — це корисна функція для створення документів Word із попередньо визначених шаблонів. Щоб автоматизувати злиття, у цій статті описано, як створити шаблони злиття та заповнити їх даними в Python. Ви також можете дослідити інші функції Aspose.Words for Python за допомогою документації. Якщо у вас виникнуть запитання, надішліть їх на нашому форумі.

Дивись також