NewTechAudit
50

Скажи «НЕТ!» ручному труду. Автоматизация запуска, расчета периодов и рассылки

В закладки

Автоматизация отчетности сейчас в тренде. Но мало кто задумывается, что можно автоматизировать не только отдельные этапы составления отчетов, но и полностью убрать ручной труд! Не нужно запускать построение отчета, указывать входные данные и даже делать рассылку?

Авторасчёт периода для формирования отчета.

Итак, нам требуется отчет, содержащий данные за всю прошлую неделю. Определяем даты (в нашем случае с прошлого понедельника до воскресенья). Нам поможет модуль datetime.

prWeek = timedelta(weeks=1) prMon = timedelta(days=datetime.date(datetime.now()).weekday()) prSun = timedelta(days=6) dstart = datetime.date(datetime.now()) - prWeek - prMon dend = dstart + prSun

Запускаем выгрузку данных, обрабатываем их и приводим отчет к нужному виду. Подробнее об этом мы писали в одной из предыдущих статей Так ли вы «любите» отчеты, как «любим» их мы? Создаем отчет с помощью ExcelWriter

Перемещение файла.

Получив готовый отчет, перемещаем его в папку назначения, используя библиотеку shutil.

shutil.copyfile(old_path + f'{file_name}', new_path + f'{file_name}')

Рассылка в Outlook.

Осталось только сделать рассылку на весь отдел. Читаем файл с сотрудниками и создаём список с их адресами.

df = pd.read_excel(r"address.xlsx") address_list = ''.join(df.mail)

Составляем и отправляем письмо модулем win32com.

app = win32com.client.Dispatch("Outlook.Application") mess = app.CreateItem(0) mess.To = address_list mess.Subject = 'Отчёт' mess.HTMLBody = f''' <HTML> <BODY> <font face='Calibri'> Добрый день, коллеги!<br> <a href={path}> Отчёт за неделю готов </a> </font> </BODY> </HTML>''' mess.Send()

Автозапуск по расписанию.

И, конечно же, программируем автозапуск нашего скрипта каждый понедельник в 10:00 с использованием модуля schedule.

def job(): report() schedule.every().monday.at("10:00").do(job) while True: schedule.run_pending()

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

Лайфхаки IT, проверенные AI-решения для стандартных задач
{ "author_name": "NewTechAudit", "author_type": "editor", "tags": [], "comments": 0, "likes": 0, "favorites": 0, "is_advertisement": false, "subsite_label": "newtechaudit", "id": 129743, "is_wide": false, "is_ugc": false, "date": "Tue, 26 May 2020 14:53:28 +0300", "is_special": false }
Объявление на vc.ru
0
Комментариев нет
Популярные
По порядку

Комментарии