bot_warehouse — Telegram-бот переноса Excel-отчётов в Google Sheets

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

bot_warehouse — Telegram-бот переноса Excel-отчётов в Google Sheets — фото 1
нажмите для просмотра в полном размере

Слайд 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 АССИСТЕНТ

Задать вопрос по этой работе