Условное чтение ячейки с помощью openpyxl и обновление метки tkinter в зависимости от результата. - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь перебрать столбец в Excel и отобразить содержимое этой ячейки (закончить, когда попаду в пустую ячейку) на метке в tkinter. У меня проблема в том, что я хочу задавать только определенные вопросы в зависимости от условия и пропустить вопрос, если он не выполняется. Приведенный ниже код работает для отображения текста каждой ячейки на ярлыке tkinter и печати на экране, который должен был быть запрошен. Но связать тех, кого нужно было попросить, на этикетке оказалось сложно.

Электронная таблица имеет значения «Мужской» и «Женский» на первом листе книги, а на втором листе - список вопросов, задаваемых в зависимости от пола, на первом листе. у каждого вопроса есть своя целевая аудитория (мужчина или женщина) в колонке слева от него. Любая помощь с благодарностью.

import tkinter as tk
import openpyxl

window = tk.Tk()
window.title("Test of questions")
window.geometry("700x450")
LARGE_FONT= ("Verdana", 12)

def begin_ques():
    begin_btn.place_forget()

    question=tk.StringVar()


    book = openpyxl.load_workbook('Test.xlsx')
    sheet1 = book.worksheets[0]
    sheet2 = book.worksheets[1]

    gen=sheet1['B2']
    for_gen=sheet2['A2']
    print(for_gen.value)

    question.set(sheet2['B2'].value)
    global Q
    Q=2
    global FG
    FG=2

    def next_ques():

        global FG
        FG+=1
        for_gen=sheet2['A' +str(FG)]
        print(for_gen.value)

        global Q
        Q+=1

        question.set(sheet2['B' + str(Q)].value)

        if sheet2['B' + str(Q)].value == None:
            question.set("Finished")


    next_btn=tk.Button(window, text="Next", command=next_ques)
    next_btn.place(x=575,y=100)
    next_btn.config(height=5, width=5)      


    qus_label = tk.Label(window, textvariable=question, font = LARGE_FONT, borderwidth=2, relief="groove")
    qus_label.place(x=150, y=100)
    qus_label.config(height=5,width=40)



begin_btn=tk.Button(window, text= "Begin", command=begin_ques)
begin_btn.place(x=320, y=220)
begin_btn.config(height=3, width= 6)


window.mainloop()
...