Openpyxl、电报。在 for 循环中选择活动工作表

问题描述 投票:0回答:1

使用 openpyxl 我获取文件(读取它)。使用循环,我得到了所有工作表的名称。接下来,我创建一个命令,通过该命令从工作表中输出数据

import openpyxl

from aiogram import Router, F
from aiogram.types import Message
from aiogram.filters import Command, CommandStart

from keyboards import reply, inline

router = Router()
wb = openpyxl.reader.excel.load_workbook(filename = "data/Inventarization 2023.xlsx", data_only = True)

for item in wb.sheetnames:
sheet = wb[item]

@router.message((F.text == item))
async def agent (message: Message):
print(sheet)
text = ""
for i in range (11, 312):
text += f"🔢 № {sheet['B' + str(i)].value}\n📅 Дата ввода: {sheet['C' + str(i)].value}\n✏️ Серийный номер: {sheet['D' + str(i)].value}\n📌 Инвентарный номер: {sheet['E' + str(i)].value}\n📝 Наименование: {sheet['F' + str(i)].value}\n🚪 Кабинет: {sheet['G' + str(i)].value}\n📚 Примечание: {sheet['H' + str(i)].value}\n\n"
for x in range(0, len(text), 4096):
mess = text[x: x + 4096]        
await message.answer(mess)

我尝试将命令转移到循环中,但没有帮助

python-3.x telegram openpyxl aiogram
1个回答
0
投票

事实证明这要容易得多。在 Router 中,有必要使用 message.text 而不是 item

用户 moken 是对的,如果 openpyxl 在循环中正确输出所有内容,那么它已经在 aiogram 中

© www.soinside.com 2019 - 2024. All rights reserved.