В сегодняшнем быстро меняющемся мире с новым программным обеспечением и искусственным интеллектом очень важно экономить время и оптимизировать рабочий процесс. Автоматизация необходима, чтобы идти в ногу с современными технологиями, а также помогает избавиться от скучных и повторяющихся задач. Область, где это может быть особенно полезно, — это создание документов Word, таких как написание писем 100 лицам, создание счетов, писем о просроченных платежах или даже юридических писем.

Для задач, которые можно автоматизировать, python — лучший инструмент, подходящий для этого с огромным количеством библиотек. Одной из таких библиотек является python-docx-template, о которой я подробно расскажу в серии сообщений в блоге. В этой серии статей я объясню, что такое python-docx-template, как его установить и использовать, приведу примеры с документами Word и обсужу различные варианты использования.

1. Что такое шаблон python-docx?

python-docx-template — это библиотека Python, которую можно использовать для автоматического заполнения шаблона Word. Библиотека использует две основные библиотеки: python-docx для чтения, записи и создания документов и jinja2 для управления вставленными заполнителями в шаблон.

Теперь вы можете спросить себя: «Зачем мне нужен шаблон? Могу ли я сам создавать документы Word?». Конечно, вы можете, но ниже приведены некоторые преимущества использования python-docx-template по сравнению с ручным созданием документов Word:

  • Автоматизированное формирование документов
  • Единый формат и стиль
  • Динамический и условный контент (другие имена, изменение дат и т. д.)
  • Перебор списков Excel

Преимущества использования шаблона python-docx:

  • Экономия времени за счет автоматизации создания документов
  • Согласованное форматирование и стиль
  • Простая настройка и обновление документов

2. Начало работы с шаблоном python-docx

Сначала убедитесь, что вы установили Python и имеете базовое представление о программировании. Затем установите docxtpl с помощью pip:

pip install docxtpl

или используя conda:

conda install docxtpl --channel conda-forge

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

Это отобразит следующее:

Как мы видим, заполнителя не осталось. Оператор if else, отображаемый для 85, правильно указывает вторую строку. Теперь, для красоты docxtpl, мы можем просто улучшить наш текстовый шаблон, добавив полужирный шрифт и подчеркнув часть текста, чтобы сделать его более читабельным и выглядеть лучше.

Отрендеренная версия выглядит следующим образом:

Для рендеринга шаблона нам понадобится код:

from docxtpl import DocxTemplate
from datetime import date, datetime


# Load the template file
template = DocxTemplate("Evaluation_template.docx")

# Create a context dictionary with data to be inserted into the template
context = {
    'employee_name': 'John Doe',
    'start_date': date(2023, 1, 1).strftime("%d.%m.%Y"),
    'end_date': date(2023, 3, 31).strftime("%d.%m.%Y"),
    'tedate': datetime.now().strftime("%d.%m.%Y"),
    'score': 85,
    'manager_name': 'Jane Smith'
}

# Render the template with the context data
template.render(context)

# Save the generated document to a new file
template.save(f"Evaluation_{context['employee_name']}.docx")

Шаг за шагом:

  • Сначала мы импортируем библиотеки
  • Во-вторых, мы загружаем наш файл шаблона в этом случае Evaluation_template.docx
  • В-третьих, мы используем словарь (контекст) для заполнения шаблона данными.
  • В-четвертых, мы визуализируем шаблон
  • На последнем шаге мы сохраняем шаблон как Evaluation_John Doe.docx.

В заключение я надеюсь, что вам понравилось это краткое введение в удивительную библиотеку, использующую простой шаблон Word для создания документов Word, которые можно использовать для самых разных задач.

В следующих сообщениях блога я покажу, как динамически создавать таблицы, и продемонстрирую, как вы можете использовать базу данных или Excel, чтобы создавать отчеты еще более динамично, чем жестко кодировать словарь контекста (код Python).

Вы можете связаться со мной в LinkedIn или посетить мой GitHub, чтобы получить все файлы, сопровождающие публикацию в блоге.