bot_warehouse — Telegram-бот переноса Excel-отчётов в Google Sheets
Telegram-бот на Python, который принимает Excel-файлы из рабочего чата и переносит их содержимое в нужный лист Google-таблицы склада.

Слайд 1 из 2
ОПИСАНИЕ
Бот автоматизирует загрузку складских отчётов: сотрудники присылают .xlsx в групповой чат, а бот переносит данные в Google-таблицу. Реализован на чистом requests с собственным циклом long polling getUpdates. Обрабатываются только сообщения из заданного группового чата (фильтрация по chat_id); файлы распознаются по расширению и MIME-типу. Файл скачивается через Telegram getFile, читается openpyxl в read-only режиме (data_only) во временный файл. Запись в Google Sheets идёт через gspread: сервисный аккаунт (api_gg.json) авторизуется в scopes spreadsheets/drive, содержимое целевого листа полностью заменяется (worksheet.clear + update с value_input_option='USER_ENTERED'). Нетривиальная часть — маршрутизация отчёта на нужный лист. Имя файла сопоставляется с таблицей соответствий «подстрока → индекс листа», при этом имя предварительно нормализуется по Unicode (NFC) и очищается регулярным выражением от числовых и датовых суффиксов в конце (например _04,03_1_1), что делает сопоставление устойчивым к вариативности имён выгрузок. Каждый шаг (скачивание, чтение, запись) обёрнут в обработку ошибок с информативным ответом в чат.
ИСПОЛЬЗУЕМЫЕ ИНСТРУМЕНТЫ
- Python
- Telegram Bot API
- requests
- Google Sheets API
- gspread
- google-auth
- openpyxl
- регулярные выражения
- Git
РЕЗУЛЬТАТ
- Реализован приём Excel-файлов из заданного группового чата с фильтрацией по chat_id и распознаванием по расширению/MIME.
- Реализованы скачивание файла через getFile и чтение openpyxl в read-only режиме через временный файл.
- Реализована запись данных в нужный лист Google Sheets через gspread с полной заменой содержимого листа.
- Реализована маршрутизация отчёта на лист по имени файла с нормализацией Unicode и удалением числовых/датовых суффиксов регулярным выражением.
AI АССИСТЕНТ
Задать вопрос по этой работе