Поразительно простой код, который способен сэкономить вам массу времени в будущем. Я, как энтузиаст автоматизации, старающийся избегать любых монотонных задач, восхищаюсь такими решениями. О своих проектах в данной области рассказываю здесь.
Впервые с подобной задачей я столкнулась много лет назад, когда моя арендодательница, у которой я снимала квартиру в Санкт-Петербурге, подошла ко мне с просьбой из серии "ты же программист" (хотя в тот момент я еще работала инженером и не имела глубоких знаний в разработке, так что могу с уверенностью сказать, что справиться с этим кодом может почти любой начинающий разработчик). Она организовывала детские танцевальные конкурсы на региональном или более высоком уровне и каждый раз приглашала отдельного человека, который в течение двух дней занимался печатью дипломов.
Детей было множество, как и дипломов, и, конечно, из-за человеческого фактора возникало немало ошибок. В какой-то момент она попросила автоматизировать этот процесс (ведь ты программист).
Технически задача выглядела так: по итогам каждого этапа соревнований формировалась экселевская табличка, каждая строчка которой содержала информацию о ребенке/танцевальном коллективе, руководителе, номинации, программе и месте (диплом 1, 2 или 3 степени). Соотвественно, по данным из каждой строчки нужно было сформировать отдельный диплом по шаблону.
Шаблон оказался стандартным документом Word, в который требовалось вставить информацию из таблицы в определённых местах. Это распространённая задача для многих, и когда я разрабатывала курс по автоматизации повседневных задач на Python, мне вспомнилась эта ситуация. Я уделила ей внимание в одной из практических работ, которую вы сможете увидеть ниже.
Данными талантливых детей я конечно же светить не буду, но для своих слушателей я целый вечер придумывала базу данных с воображаемыми сотрудниками, которым нужно нагенерировать заявлений на отпуск. Задача полностью аналогичная: таблица Excel с информацией о сотрудниках и датами отпусков, шаблон заявления в Word. Демонстрация ниже.
Все данные были придуманы из головы, совпадения с реальными лицами абсолютно случайны. Адреса электронных почт я также придумала, многие введены специально некорректно для практики по регулярным выражениям на моем курсе.
Подготовка шаблона
Теперь рассмотрим все это на примере. Сначала шаблон нужно подготовить, то есть указать места в документе, куда мы будем подставлять данные.
Как реализовать это: в тех участках нашего шаблона, куда будут добавляться определенные данные, мы вставляем двойные фигурные скобки и имя переменной, которую впоследствии используем. Пример приведен ниже.
Форматирование мы определяем не в коде, а непосредственно в самом шаблоне. То есть все, что касается шрифта, размеров, отступов и т.д. — все это мы указываем вручную в документе шаблона. Разумеется, есть возможность сделать это и в коде, но в данной статье мы сосредоточимся только на подстановке данных.

Код для интеграции определенных значений в шаблон на удивление легок.
pip install docxtpl
Давайте пошагово разберем, что тут происходит:
Запускаем код и видим результат

Подключаем таблицу
pip установить openpyxl
Основные возможности
Какие функции этой библиотеки нам сейчас понадобятся:
лист = wb[‘отпуск’]
Эта строчка кода извлекает рабочий лист (worksheet) из рабочей книги (workbook) wb и присваивает его переменной sheet . В данном случае, мы извлекаем лист с именем ‘vacation’. Если такого листа не существует, будет вызвано исключение.
Далее из этого листа мы уже можем извлекать данные (из конкретных ячеек).

Посмотрим внимательно на одну строку из таблицы. Придумаем алгоритм для одного сотрудника и дальше уже не составит труда в цикле применить его для остальных.
Например, нам нужно заполнить заявление для первого сотрудника — вторая строчка таблицы. Соотвественно, нужно достать данные из ячеек A2(фамилия), B2(имя), D2(компания), F2(начало отпуска) и G2(конец отпуска).
Достать данные из конкретной ячейки можно следующей командой
sheet[‘A2’].значение
После выполнения этой строки кода будет возвращено значение, которое содержится в ячейке A2 рабочего листа sheet .
В таком случае для других ячеек это представится следующим образом:
name = sheet[‘B2’].value last_name = sheet[‘A2’].value company = sheet[‘D2’].value start_data = sheet[‘F2’].value.date() end_data = sheet[‘G2’].value.date()
К датам еще добавляю функцию .date(), чтобы она возвращалась не в формате », а хотя бы 2022-05-01.
Дополняем код, написанный в прошлой части для формирования заявления с данными из таблицы для первого сотрудника
Обратите внимание, что я заменила данные в словаре context на переменные. Можно было бы сделать и без промежуточных переменных и сразу сформировать словарь, но в перспективе вам может понадобиться добавить какие-то проверки, что в словаре сделать не получится.
Получается, что код для первого сотрудника готов, осталось добавить цикл и нагенерировать заявлений для всех остальных. По сути, единственное, что будет меняться в коде для каждого сотрудника это индекс ячеек, поэтому давайте привяжем его к счётчику в цикле.
Конструкция [‘B’+str(num)] будет по очереди возвращать B2, B3, B4 и тд.

range(2,6) — начинаем с индекса 2, так как первая строчка таблицы это заголовки, а до 6 чисто для тестирования кода, потому что если вы допустите ошибку, то будет проще удалить несколько тестовых заявлений, чем пару сотен. Если несколько тестовых документов сформировались корректно, то уже можно заменить конечное число на нужное количество (либо вручную, либо использовать len(list(sheet.rows)+1 )
Запускаем код и наслаждаемся результатом.
В своем канале IT как цифровое творчество пишу про автоматизацию, разные интересные обучения, создание курсов, рассказываю про свой опыт и о том, как я от инженера на заводе дошла до создания IT-стартапа, даю рекомендации и анонсирую запуски интересных проектов по разработке.
Надеюсь, что материал был вам полезен! И успехов в ваших начинаниях!
Как сделать отчет в Word?

Как подготовить отчет в Word? Применение шаблона Для того чтобы открыть шаблон MS Word, воспользуйтесь одним из доступных способов для перехода в окно «Функции камеры…». Далее в разделе «Документы» выберите опцию «Печать документа», и в открывшемся диалоговом окне укажите нужный шаблон для создания отчета. В результате получится окончательный отчет.
Какие формы создания отчетов существуют?
Отчет. Вы можете создать отчет автоматически. с полями, расположенными в один или несколько столбцов; Маг. отчеты. Мастер отчетов, позволяющий создать настраиваемый отчет на основе выбранных полей.
Как создать автоматический отчет?
Отчет, который автоматически генерируется из таблицы или запроса, называется автоматическим отчетом. Access позволяет автоматически создавать отчеты в двух форматах: столбчатый и ленточный. Чтобы создать автоотчет: На панели «Объекты» окна «База данных» перейдите на вкладку «Отчеты» и нажмите кнопку «Создать».
Это может вас заинтересовать: Какие сгустки выходят при медикаментозном аборте?
Как создать форму отчета?
Какой расклад должен содержать отчет?
Ориентация документа портретная, документ сшивается слева. 8. Метод выравнивания – широкий, без отступа влево или вправо.
Как правильно написать отчет по стажировке?
Правила и общие требования к отчету по практике Общий объем работы не превышает 40 листов стандартного формата А4. Память практики будет пронумерована на всех страницах (кроме обложки и в приложении к практике). Текст работы должен быть набран шрифтом Times New Roman черного цвета 12 на 14 пунктов.
Зачем мне отчет?
Отчеты являются объектами приложения конфигурации. Они предназначены для обработки накопленной информации и получения сводных данных в удобном для просмотра и анализа виде.
Что включает в себя структура отчета?
Отчет содержит семь разделов. Пять из них являются стандартными разделами: «Верхний колонтитул отчета», «Верхний колонтитул страницы», «Подробности», «Нижний колонтитул страницы» и «Нижний колонтитул отчета» в указанном порядке. Группировка не является обязательной и применяет уровень организации, агрегированный по общим полям.
Какие типы отчетов доступны?
Бухгалтерский баланс. Отчет о финансовых результатах. Отчет об изменениях чистой стоимости служит дополнением к балансу и отчету о прибылях и убытках. Отчет о движении денежных средств является еще одним приложением к финансовой отчетности. Некоммерческие организации заполняют Заявление о целевом использовании средств.
Вам может быть интересно: Как удостовериться в корректности показаний пульсоксиметра?
Что такое отчет в базе данных?
Вы можете использовать отчеты для просмотра, форматирования и группировки информации в базе данных Microsoft Access. Например, вы можете создать простой отчет, такой как список номеров телефонов для всех контактов, или сводный отчет о продажах компании в разных регионах за разные периоды.
Как распечатать отчет?
В области навигации щелкните правой кнопкой мыши отчет, который нужно распечатать, и выберите Предварительный просмотр. На вкладке Предварительный просмотр в группе Печать нажмите кнопку Печать. Вы также можете нажать комбинацию клавиш CTRL+P. Выберите нужные параметры и нажмите OK, чтобы напечатать отчет.
Что такое компьютерный отчет?
Отчет — это объект базы данных, используемый для отправки структурированной информации на экран, принтер или в файл. Отчеты позволяют извлекать необходимую информацию из таблиц базы данных или запросов и представлять ее в удобном для чтения виде.
Как создать отчет в 1С?
Создание внешнего отчета в 1С Для создания нового отчета нажмите «Новый документ» в стандартном меню конфигуратора. Откроется окно «Выбор типа документа», в котором необходимо выбрать «Внешний отчет» и затем нажать кнопку ОК.
Как сформировать отчет в 1с?
Раздел:. Отчеты. – Ротация между субсчетами. Укажите период, за который создается. отчет. В поле «Тип субсчета» выберите «Номенклатура». В разделе «Тип кор. кнопка «Показать настройки» может:. «. Курок. «.
Это может вас заинтересовать: Как сделать качели из веревки?




