python寫一個gui窗口一個菜單欄,名字叫PA,這個PA連接一個excel,儅用戶點擊PA時把這個excel中所有的工作表名打印在窗口中生成按鈕,儅點擊這些按鈕時可以讀取相應工作表中的一列數據並在數據後面添加下拉輸入框,再根據數據内容自動添加滑動條,
时间: 2023-09-30 20:04:47 浏览: 77
好的,可以使用Python的tkinter模块来创建GUI窗口和菜单栏,同时使用openpyxl模块来读取Excel文件中的工作表和数据。以下是一个示例代码:
```python
import tkinter as tk
from tkinter import ttk
from tkinter.filedialog import askopenfilename
import openpyxl
def open_excel():
filename = askopenfilename()
if filename.endswith('.xlsx'):
# 打开Excel文件
wb = openpyxl.load_workbook(filename)
# 获取所有工作表名
sheets = wb.sheetnames
# 创建工作表按钮
for sheet in sheets:
btn = ttk.Button(root, text=sheet, command=lambda sheet=sheet: read_data(sheet))
btn.pack()
def read_data(sheet_name):
# 打开Excel文件
wb = openpyxl.load_workbook(filename)
# 获取指定工作表
ws = wb[sheet_name]
# 获取第一行数据
header = [cell.value for cell in ws[1]]
# 获取第二行数据
data = [cell.value for cell in ws[2]]
# 创建下拉框
combo = ttk.Combobox(root, values=data)
combo.pack()
# 创建滑动条
for i, value in enumerate(data):
if isinstance(value, (int, float)):
scale = ttk.Scale(root, from_=0, to=value, orient=tk.HORIZONTAL)
scale.pack()
break
# 创建主窗口
root = tk.Tk()
root.title('PA')
root.geometry('300x300')
# 创建菜单栏
menu_bar = tk.Menu(root)
file_menu = tk.Menu(menu_bar, tearoff=0)
file_menu.add_command(label='Open', command=open_excel)
menu_bar.add_cascade(label='File', menu=file_menu)
root.config(menu=menu_bar)
# 运行主循环
root.mainloop()
```
上述代码中,首先导入了tkinter和openpyxl模块。然后定义了一个`open_excel()`函数,用于打开Excel文件并获取工作表名,创建工作表按钮,并绑定`read_data()`函数。`read_data()`函数用于读取指定工作表的数据,创建下拉框和滑动条。
接下来,创建主窗口和菜单栏,然后将`open_excel()`函数绑定到“Open”菜单项中。
最后,运行主循环以显示GUI窗口。
当用户点击菜单栏中的“Open”菜单项时,将弹出文件选择对话框,选择Excel文件后,程序将自动读取文件中的工作表名,并在窗口中创建相应的按钮。当用户点击工作表按钮时,程序将自动读取工作表中的数据,并在窗口中创建下拉框和滑动条。
阅读全文