В сегодняшнем быстро меняющемся мире с новым программным обеспечением и искусственным интеллектом очень важно экономить время и оптимизировать рабочий процесс. Автоматизация необходима, чтобы идти в ногу с современными технологиями, а также помогает избавиться от скучных и повторяющихся задач. Область, где это может быть особенно полезно, — это создание документов 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, чтобы получить все файлы, сопровождающие публикацию в блоге.