有没有一种方法可以使工作表菜单自动更新“列”菜单?

时间:2019-04-08 07:34:32

标签: python tkinter

我正在开发一个应用程序,用户可以在其中上传自己的excel文件并获取表格和列。如何获取“列”下拉菜单(第二个)以“表格”下拉菜单(第一个)进行更新。

我已经尝试使函数“ Update”从功能“ GetSheet”获取新表并进行更新。但这不起作用,因为列下拉菜单始终卡在默认表中。

master.title('ATT Analytics App')
master.geometry("400x250")

Myfile= filedialog.askopenfile()
wb = load_workbook(filename = str(Myfile.name))
#Sheets = wb.sheetnames


variable = StringVar(master)
variable.set(str(wb.sheetnames[2])) # default value
w = OptionMenu(master, variable, str(wb.sheetnames[0]), str(wb.sheetnames[1]), str(wb.sheetnames[2]), str(wb.sheetnames[3]))
w.pack()



def GetSheet():
    FileRead = pd.read_excel(str(Myfile.name),sheet_name= str(variable.get())) 
    MyHeadres = list(FileRead.columns.values)
    return MyHeadres, FileRead

variable1 = StringVar(master)

def Update(TheHeaders):
    variable1.set(str(TheHeaders[0]))
    wc = OptionMenu(master, variable1, str(TheHeaders[0]), str(TheHeaders[1]), str(TheHeaders[2]), str(TheHeaders[3]), str(TheHeaders[4]), str(TheHeaders[5]))
    return wc

def RunAll():
    GetMySheet, FileRead = GetSheet()
    UpdateMysheet = Update(GetMySheet)
    return UpdateMysheet, variable1.get(), FileRead 

button = Button(master, text="Run", command=RunAll)
button.pack(side = TOP)

UpdateMysheet, MyColumn, ReadMyFile = RunAll()
UpdateMysheet.pack()
FileRead = ReadMyFile

mainloop()

我想带我的代码以使用下拉菜单(变量)更新列下拉菜单(变量1),该菜单可以正常工作,并且还可以存储所需的列并继续进行选择一个等等 非常感谢您的帮助。

编辑:现在,当我选择另一个工作表时,列的默认值将更新为新工作表,但是当我查看完整的列表时,我发现这些值来自旧工作表。

0 个答案:

没有答案