Всем, привет!
По заданию надо реализовать именно через Excel, не через БД.
Код бота работает: по запросу (нажатию клавиши) выдает данные из ексель таблицы, в ВК боте, но если во время работы бота открыть ексель-таблицу локально, внести правки, сохранить и закрыть. После еще раз запросить данные из таблицы у бота, то бот отправит старые данные.
Если бота перезагрузить, то новые данные он подтягивает.
Как сделать так, чтобы данные у бота обновлялись?
Файл с обработкой Ексель таблицы:
import openpyxl
def main():
global book
try:
book = openpyxl.open('goods.xlsx',
read_only=True)
sheet = book.active
lst = []
for row in range(1, sheet.max_row + 1):
number_of_pos = sheet[row][0].value
name_of_goods = sheet[row][1].value
value_on_sklad = sheet[row][2].value
lst.append([number_of_pos, name_of_goods, value_on_sklad])
book.close()
return lst
except Exception as err:
print(err)
finally:
book.close()
if __name__ == '__main__':
main()
Фрагмент кода запроса данных по нажатию кнопки из ВК Бота:
lst = main()
@bot.on.message(text='Проверить наличие на складе')
async def next_step_sklad(message: Message):
for zet in range(1, len(lst)):
number_of_pos, name_of_goods, value_on_sklad = lst[zet]
await message.answer(f'Товары на складе:\n{number_of_pos} {name_of_goods}')
await message.answer('\nОтправьте цифру или название товара',
keyboard=(
Keyboard(one_time=False, inline=False)
.add(Text('Назад', payload={'cmd': 'menu_2'}), KeyboardButtonColor.NEGATIVE)
).get_json())
if __name__ == '__main__':
bot.run_forever()