Задать вопрос
nmkru
@nmkru
beginner python programmer

Как обновить Excel таблицу в VK боте (VkBottle)?

Всем, привет!
По заданию надо реализовать именно через 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()
  • Вопрос задан
  • 97 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Почему они в принципе должны обновляться? В переменную lst занесли список позиций lst = main(). Потом уже работаете с этим же списком. Логично было бы переопределять lst каждый раз внутри функции проверки на складе
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽