Как настроить поиск по ключу в файле Excel и отправлять информацию, соответствующую ключу, с помощью aiogram?

Как я могу улучшить код бота в Telegram, чтобы осуществить поиск ключа (который отправляет пользователь) в столбце A и вывести информацию из столбцов B и C на строке, в которой найден этот ключ? На данный момент код бота всегда выводит "Неверный код" независимо от ввода пользователя.
  • 11 марта 2024 г. 16:39
Ответы на вопрос 1
Для начала необходимо настроить бота в Telegram с помощью библиотеки aiogram. Затем загрузите файл Excel с помощью pandas, чтобы иметь доступ к данным.

Пример кода, который может помочь вам реализовать поиск по ключу в файле Excel и отправить информацию, соответствующую ключу, с помощью aiogram:

```python
import pandas as pd
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.types import ReplyKeyboardRemove

API_TOKEN = 'your_api_token_here'

bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
dp.middleware.setup(LoggingMiddleware())

# Load Excel file
df = pd.read_excel('your_excel_file.xlsx')

@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
    await message.reply("Привет! Пожалуйста, введите ключ для поиска:")

@dp.message_handler()
async def get_info(message: types.Message):
    key = message.text
    data = df[df['A'] == key]

    if not data.empty:
        info_to_send = f"Информация из столбца B: {data['B'].iloc[0]}\nИнформация из столбца C: {data['C'].iloc[0]}"
        await message.reply(info_to_send)
    else:
        await message.reply("Неверный ключ")

if __name__ == '__main__':
    import asyncio
    from aiogram import executor

    loop = asyncio.get_event_loop()
    try:
        loop.create_task(executor.start_polling(dp, skip_updates=True))
        loop.run_forever()
    finally:
        loop.stop()
```

Этот код будет отвечать на команду `/start` и просить пользователя ввести ключ. Затем он будет искать этот ключ в столбце A вашего файла Excel и отправлять информацию из столбцов B и C на строке, где найден этот ключ. Если ключ не найден, бот отправит "Неверный ключ".

Чтобы улучшить код и убедиться, что он работает правильно, убедитесь, что столбцы в вашем файле Excel называются 'A', 'B' и 'C'. Также убедитесь, что файл Excel находится в той же папке, где запущен ваш скрипт.
Похожие вопросы