Найти в Дзене
Анастасия Софт

🤖 Автоматизация ежедневной отчётности с помощью Python и Excel

или как сэкономить часы ручной работы и прослыть Excel-мастером, не открывая Excel Каждое утро: Excel, ручками фильтры, сводные, графики, отчёты.
Каждую ночь: "Завтра точно автоматизирую".
Ну, завтра — это сегодня, погнали! pip install pandas openpyxl xlwings matplotlib Задача: у нас каждый день приходит отчёт, нужно склеить их все. sales_2025-04-10.xlsx sales_2025-04-11.xlsx import pandas as pd
import glob
files = glob.glob('sales_*.xlsx')
all_data = pd.concat([pd.read_excel(f) for f in files])
all_data.to_excel('merged_sales.xlsx', index=False) merged_sales.xlsx Задача: получить суммарные продажи по регионам и категориям. df = pd.read_excel('merged_sales.xlsx')
pivot = df.pivot_table(index='Регион', columns='Категория', values='Продажи', aggfunc='sum')
pivot.to_excel('pivot_report.xlsx') Задача: построить график изменения продаж по датам. import matplotlib.pyplot as plt
df = pd.read_excel('merged_sales.xlsx')
sales_by_day = df.groupby('Дата')['Продажи'].sum()
sales_by_day.plot(k
Оглавление
 Автоматизация ежедневной отчётности с помощью Python и Excel
Автоматизация ежедневной отчётности с помощью Python и Excel

или как сэкономить часы ручной работы и прослыть Excel-мастером, не открывая Excel

🎯 Введение

Каждое утро: Excel, ручками фильтры, сводные, графики, отчёты.

Каждую ночь: "Завтра точно автоматизирую".

Ну,
завтра — это сегодня, погнали!

🧰 Установим нужные библиотеки

pip install pandas openpyxl xlwings matplotlib

  • pandas — любимец всех, кто работает с таблицами.
  • openpyxl — для сохранения Excel-файлов.
  • xlwings — прямое управление Excel'ем.
  • matplotlib — рисуем графики без боли.

✅ Пример 1: Объединение Excel-файлов по шаблону

Задача: у нас каждый день приходит отчёт, нужно склеить их все.

📂 До (много отдельных файлов):

sales_2025-04-10.xlsx

-2

sales_2025-04-11.xlsx

-3

🔧 Код:

import pandas as pd
import glob

files = glob.glob('sales_*.xlsx')
all_data = pd.concat([pd.read_excel(f) for f in files])
all_data.to_excel('merged_sales.xlsx', index=False)

📊 После (один красивый файл):

merged_sales.xlsx

-4

📊 Пример 2: Построение сводной таблицы

Задача: получить суммарные продажи по регионам и категориям.

📂 До:

-5

🔧 Код:

df = pd.read_excel('merged_sales.xlsx')
pivot = df.pivot_table(index='Регион', columns='Категория', values='Продажи', aggfunc='sum')
pivot.to_excel('pivot_report.xlsx')

📊 После:

-6

📈 Пример 3: Построение графика по дням

Задача: построить график изменения продаж по датам.

📂 До:

-7

🔧 Код:

import matplotlib.pyplot as plt

df = pd.read_excel('merged_sales.xlsx')
sales_by_day = df.groupby('Дата')['Продажи'].sum()

sales_by_day.plot(kind='line', marker='o')
plt.title("Продажи по дням")
plt.ylabel("Сумма")
plt.grid(True)
plt.savefig("sales_chart.png")

📈 После:

🖼️ График с линией продаж по дням.

🧽 Пример 4: Чистка и нормализация данных

Задача: убрать дубли, пустые строки, нормализовать текст.

📂 До:

-8

🔧 Код:

df = pd.read_excel('dirty_data.xlsx')

df = df.drop_duplicates()
df = df.dropna(subset=['Продажи'])
df['Категория'] = df['Категория'].str.capitalize()

df.to_excel('clean_data.xlsx', index=False)

📊 После:

-9

📤 Пример 5: Автоматическая отправка отчёта на почту

Задача: сформировали отчёт — отправили начальству.

🔧 Код:

import smtplib
from email.message import EmailMessage

msg = EmailMessage()
msg['Subject'] = '📩 Продажи за сегодня'
msg['From'] = 'you@example.com'
msg['To'] = 'boss@example.com'
msg.set_content('Добрый день! Во вложении отчёт.')

with open('pivot_report.xlsx', 'rb') as f:
msg.add_attachment(f.read(), maintype='application',
subtype='vnd.openxmlformats-officedocument.spreadsheetml.sheet',
filename='pivot_report.xlsx')

with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
smtp.login('you@example.com', 'your_password')
smtp.send_message(msg)

print("✅ Отчёт отправлен!")

📩 После:

Начальник получает письмо с темой "📩 Продажи за сегодня" и вложением Excel-файла — и думает, что ты всё делал вручную. 😎

🧠 Итоги: что ты теперь умеешь

НавыкОсвоено ✅Объединять Excel-файлы✅Строить сводные таблицы✅Строить графики✅Чистить и нормализовать данные✅Отправлять отчёты по почте✅

💡 Что дальше?

  • Настрой ежедневный запуск с помощью schedule, cron или Task Scheduler.
  • Добавь GUI для выбора дат, категорий и автоэкспорта.
  • Построй Dashboard на Streamlit или Dash.
  • Интегрируй с Telegram или Slack для нотификаций.