Создание документов 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

# Create a document builder
builder = aw.DocumentBuilder()

# Insert a text input field the unique name of this field is "Hello", the other parameters define
# what type of FormField it is, the format of the text, the field result and the maximum text length (0 = no limit)
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)

# Insert a paragraph break into the document
builder.insert_paragraph()

# Insert mail body
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()

# Insert mail ending
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")

# Save the template as a DOCX file
builder.document.save("mail_merge_template.docx")

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

создание шаблона слияния почты в python

Создание документа Word с использованием шаблона слияния почты в Python

Теперь, когда вы создали шаблон слияния, пришло время заполнить его поля значениями. Ниже приведены шаги для создания документа Word из шаблона слияния в Python.

  • Загрузите шаблон слияния почты, используя класс Document.
  • Вызовите метод Document.mailmerge.execute() и передайте данные в виде массива.
  • Сохраните сгенерированный документ с помощью метода Document.save().

В следующем примере кода показано, как создать документ Word из шаблона слияния.

import aspose.words as aw

# Load the mail merge template
doc = aw.Document("mail_merge_template.docx")

# Fill the fields in the document with 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"]
    )

# Save the document
doc.save("mail_merge_populated.docx")

На следующем снимке экрана показан документ Word, который мы создали из шаблона слияния.

создать текстовый документ из шаблона слияния почты в python

Получить бесплатную лицензию

Вы можете использовать Aspose.Words for Python без ограничений на пробную версию, получив бесплатную временную лицензию.

Вывод

Слияние почты MS Word — это полезная функция для создания документов Word из предопределенных шаблонов. Чтобы автоматизировать слияние, в этой статье рассказывается, как создавать шаблоны слияния и заполнять их данными в Python. Вы также можете изучить другие функции Aspose.Words для Python, используя документацию. Если у вас возникнут какие-либо вопросы, не стесняйтесь задавать их на нашем форуме.

Смотрите также