python寫一個gui窗口一個菜單欄,菜單欄名字叫PA,這個PA連接一個路徑中指定的excel,儅用戶點擊PA時把這個excel中所有的工作表名打印在窗口中生成按鈕靠窗口左邊竪著放,再在下方生成日志框,儅點擊這些工作表名生成的按鈕時可以讀取相應工作表中的一列所有的數據並根據數據内容在後面添加下拉輸入框將他們放在日志框中顯示再根據數據内容在日志框中自動添加滑動條,
时间: 2023-12-10 12:37:48 浏览: 70
1.第一个窗口.zip
以下是一个简单的实现:
```python
import tkinter as tk
import pandas as pd
class ExcelGUI:
def __init__(self, master):
self.master = master
master.title("Excel GUI")
# 创建菜单栏
menubar = tk.Menu(master)
master.config(menu=menubar)
# 添加PA菜单
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="Open Excel", command=self.open_excel)
menubar.add_cascade(label="PA", menu=filemenu)
# 工作表名按钮
self.buttons_frame = tk.Frame(master)
self.buttons_frame.pack(side=tk.LEFT, fill=tk.Y)
# 日志框
self.log_box = tk.Listbox(master, width=50)
self.log_box.pack(side=tk.BOTTOM, fill=tk.X)
def open_excel(self):
# 打开Excel文件
filename = tk.filedialog.askopenfilename(title="Select Excel file", filetypes=(("Excel files", "*.xlsx"), ("all files", "*.*")))
if not filename:
return
# 读取所有工作表名
sheets = pd.read_excel(filename, sheet_name=None).keys()
# 创建工作表名按钮
for sheet in sheets:
btn = tk.Button(self.buttons_frame, text=sheet, command=lambda sheet=sheet: self.load_data(sheet))
btn.pack(side=tk.TOP, fill=tk.X)
def load_data(self, sheet):
# 读取一列数据
df = pd.read_excel(filename, sheet_name=sheet)
data = list(df[df.columns[0]])
# 创建下拉框和滑动条
dropdown = tk.OptionMenu(self.log_box, tk.StringVar(), *data)
dropdown.pack(side=tk.LEFT)
scrollbar = tk.Scrollbar(self.log_box, orient=tk.HORIZONTAL)
scrollbar.pack(side=tk.BOTTOM, fill=tk.X)
# 输出日志
self.log_box.insert(tk.END, f"Loaded data from {sheet}")
```
这个程序首先创建了一个窗口和一个名为“PA”的菜单栏。当用户点击菜单栏中的“Open Excel”时,会弹出一个选择文件对话框,让用户选择一个Excel文件。程序会读取这个Excel文件中的所有工作表名,并在窗口左侧创建一个竖直排列的按钮列表,每个按钮对应一个工作表。当用户点击按钮时,程序会读取相应的工作表中的一列数据,并在窗口底部的日志框中生成一个下拉框和一个滑动条,用于显示这列数据。程序同时会在日志框中输出一条信息,表明数据已加载成功。
阅读全文