python - 有没有办法使用工作表菜单自动更新列菜单?
问题描述
我正在开发一个应用程序,用户可以在其中上传他的 excel 文件并获取表格和列。如何使用表格下拉菜单(第一个)更新列下拉菜单(第二个)。
我已经尝试创建一个函数“更新”,从函数“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),它工作正常,还可以存储您想要的列并继续选择另一个列等等上.. 非常感谢您的帮助。
编辑:现在当我选择另一个工作表时,列的默认值会更新到新工作表,但是当我查看完整列表时,我发现这些值来自旧工作表。
解决方案
推荐阅读
- javascript - 为什么毫秒计数器在 requestAnimationFrame() 中一直运行?
- javascript - 如何将道具传递给使用地图渲染的 ReactNode 对象?
- python-3.x - Python,Flask 同时打印到控制台和日志文件
- java - Spring hibernate没有找到onetomany关系的列
- amazon-web-services - AWS CloudFormation 失败并出现错误“遇到不支持的属性名称”
- java - AOP 检测 Hibernate.unproxy() 的所有类强制转换
- kubernetes - 如何在 kubernetes 的主节点上运行 pod?
- dax - 根据日期字段按另一个表过滤表
- sql-server - 通过 SQL Server 调用 SAP 功能模块
- c - 如何将指针传递给局部变量?