使用 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)
我尝试将命令转移到循环中,但没有帮助
事实证明这要容易得多。在 Router 中,有必要使用 message.text 而不是 item
用户 moken 是对的,如果 openpyxl 在循环中正确输出所有内容,那么它已经在 aiogram 中