有条件地使用openpyxl读取单元格,并根据结果更新tkinter标签

时间:2019-05-17 11:50:22

标签: excel python-3.x tkinter openpyxl

我试图遍历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()

0 个答案:

没有答案