Проблема вот в чем после сохранения в def echo_message бот будет использовать старый файл эксель то есть тот который был до изменения, но при этом если его открыть сам эксель файл после изменения то там будет уже измененный. Подскажите либо как пофиксить либо как должен выглядеть код после wb.save в def echo_message который перезапускал бы прогу.
import telebot
import time
from telebot import types
import openpyxl
from openpyxl import load_workbook
workbook = load_workbook(filename="nname.xlsx")
global b1
b1 = 0
A_stlb = []
B_stlb = []
sheet = workbook.active
i1 = 1
i = 1
while i < 20:
x = 'A' + str(i)
a = sheet[x].value
A_stlb.append(a)
i += 1
while i1 < 20:
y = 'B' + str(i1)
a = sheet[y].value
B_stlb.append(a)
i1 += 1
bot = telebot.TeleBot('bot1212121212')
@bot.message_handler(commands=['start']) # Приветсвие и выбор действия
def main(message):
bot.send_message(message.chat.id, f'Доброго времени суток, {message.from_user.username}')
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton(text='Перейти на сайт', url='https://www.youtube.com/watch?v=dQw4w9WgXcQ'))
markup.add(types.InlineKeyboardButton(text="Проверить наличие", callback_data='search'))
markup.add(types.InlineKeyboardButton('Взять электронику', callback_data='take'))
bot.send_message(message.chat.id, 'Выберите дейстивие', reply_markup=markup)
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
if call.data == 'search':
sent = bot.send_message(call.message.chat.id, "Введите название ")
bot.register_next_step_handler(sent, review)
elif call.data == 'take':
sent2 = bot.send_message(call.message.chat.id, "Введите название 2")
bot.register_next_step_handler(sent2, review2)
def review(message):
message_to_save = message.text
b = message_to_save
if A_stlb.count(b):
index = A_stlb.index(b)
index2 = B_stlb[index]
bot.send_message(message.chat.id, 'Количество в наличие = ' + str(index2))
print('Количество', index2)
else:
bot.send_message(message.chat.id, 'Нет в наличие')
print("Нет в наличие")
def review2(message):
message_to_save = message.text
global b
b = message_to_save
print('b', b)
if A_stlb.count(b):
index = A_stlb.index(b)
index2 = B_stlb[index]
bot.send_message(message.chat.id, 'Количество в наличие = ' + str(index2))
sent2 = bot.send_message(message.chat.id, 'Введите количество')
bot.register_next_step_handler(sent2, echo_message)
print('Количество', index2)
else:
bot.send_message(message.chat.id, 'Нет в наличие')
print("Нет в наличие")
wb = load_workbook(filename="nname.xlsx")
ws = wb['Лист1']
@bot.message_handler(func=lambda message: True)
def echo_message(message):
b2 = int(message.text)
print('b2', b2)
print('b1', b)
if A_stlb.count(b):
index_p = A_stlb.index(b)
index_p2 = B_stlb[index_p]
print('dddd')
print(b2)
z = 'B' + str(index_p + 1)
ws[z] = index_p2 - b2
bot.send_message(message.chat.id, 'Ваш запрос учтён')
print(ws[z].value)
wb.save('nname.xlsx')
else:
print('Нет в наличие2')
if __name__ == '__main__':
while True:
try:
bot.polling(none_stop=True)
except Exception as e:
time.sleep(3)
print(e)
wb.save('nname.xlsx')