class ExcelApp: def __init__(self, master): self.master = master master.title("Excel App") # 获取屏幕的宽度和高度 screen_width = master.winfo_screenwidth() screen_height = master.winfo_screenheight() # 将窗口的大小设置为屏幕的大小 master.geometry("%dx%d" % (screen_width, screen_height)) # 创建菜单栏 menubar = tk.Menu(master) master.config(menu=menubar) # 创建文件菜单及其子菜单 filemenu = tk.Menu(menubar, tearoff=0) filemenu.add_command(label="PA綫點檢表", command=lambda: self.load_excel("D:\點檢系統存放資料夾\點檢明細\點檢内容明細.xlsx")) filemenu.add_command(label="Excel 2", command=lambda: self.load_excel("excel2.xlsx")) filemenu.add_command(label="Excel 3", command=lambda: self.load_excel("excel3.xlsx")) menubar.add_cascade(label="文件", menu=filemenu)values = ["PA", "PB", "PC"] self.label4 = tk.Label(input_frame, text="綫別") self.label4.pack(side=tk.LEFT, padx=2, pady=2) self.combobox4 = tk.ttk.Combobox(input_frame, values=values) self.combobox4.pack(side=tk.LEFT, padx=2, pady=2) self.combobox4.current(0)修改這個代碼將用戶點擊選擇的子菜單文本標簽寫入self.combobox4輸入框中
时间: 2023-12-09 19:03:39 浏览: 89
你可以在load_excel函数中添加代码来实现这个功能。具体实现方式如下所示:
1. 在load_excel函数中添加一个参数file_path,用于接收用户选择的文件路径。
2. 在函数内部使用openpyxl模块打开文件,并获取工作表对象。
3. 获取綫別数据,并将其添加到values列表中。
4. 将values列表设置为self.combobox4的值。
5. 在菜单命令中调用load_excel函数时,将选择的文件路径作为参数传递给load_excel函数。
修改后的代码如下所示:
```
import tkinter as tk
from tkinter import ttk
import openpyxl
class ExcelApp:
def __init__(self, master):
self.master = master
master.title("Excel App")
# 获取屏幕的宽度和高度
screen_width = master.winfo_screenwidth()
screen_height = master.winfo_screenheight()
# 将窗口的大小设置为屏幕的大小
master.geometry("%dx%d" % (screen_width, screen_height))
# 创建菜单栏
menubar = tk.Menu(master)
master.config(menu=menubar)
# 创建文件菜单及其子菜单
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="PA綫點檢表", command=lambda: self.load_excel("D:\點檢系統存放資料夾\點檢明細\點檢内容明細.xlsx"))
filemenu.add_command(label="Excel 2", command=lambda: self.load_excel("excel2.xlsx"))
filemenu.add_command(label="Excel 3", command=lambda: self.load_excel("excel3.xlsx"))
menubar.add_cascade(label="文件", menu=filemenu)
# 创建输入框
input_frame = tk.Frame(master)
input_frame.pack(side=tk.TOP, padx=10, pady=10)
values = []
self.label4 = tk.Label(input_frame, text="綫別")
self.label4.pack(side=tk.LEFT, padx=2, pady=2)
self.combobox4 = tk.ttk.Combobox(input_frame, values=values)
self.combobox4.pack(side=tk.LEFT, padx=2, pady=2)
self.combobox4.current(0)
def load_excel(self, file_path):
# 使用openpyxl模块打开文件并获取工作表对象
workbook = openpyxl.load_workbook(file_path)
worksheet = workbook.active
# 获取綫別数据并添加到values列表中
values = []
for row in worksheet.iter_rows(min_row=2, max_row=worksheet.max_row, min_col=1, max_col=1):
value = row[0].value
if value not in values:
values.append(value)
# 将values列表设置为self.combobox4的值
self.combobox4['values'] = values
```
注意,如果你的文件路径中包含反斜杠字符(\),需要将其转义,或者使用原始字符串(在字符串前加上r)。否则,Python会将反斜杠解释为转义字符。
阅读全文