class InventoryApp: def init(self, master): self.master = master master.title("物料进出库统计") self.master.state('zoomed') # 窗口最大化 # 创建左侧面板 self.container = tk.Frame(master) self.container.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # 创建左上方面板 self.container_top = tk.Frame(self.container) self.container_top.pack(side=tk.TOP, fill=tk.BOTH, expand=True)打开Excel文件 self.wb = openpyxl.load_workbook(r"C:\Users\bing3_chen\Desktop\1.xlsx") self.record_sheet = self.wb["記錄"] self.data_sheet = self.wb["數據"]self.material_name11.get() self.label14 = ttk.Label(self.container_top, text="品名:") self.label14.grid(row=5, column=0, padx=5, pady=5) self.material_qty14 = ttk.Combobox(self.container_top, values=[]) self.material_qty14.grid(row=5, column=1, padx=5, pady=5)在這段代碼中根據這個輸入框self.material_name11.get()獲取的内容去excel表名為數據的表中從第一列匹配到相應數據將第5列的内容輸入到下拉輸入框中
时间: 2024-03-10 17:47:28 浏览: 50
根据您的描述,您需要编写一个函数来实现根据输入框中的内容匹配 Excel 表格中的数据,并将匹配到的数据添加到下拉框中。您可以尝试以下代码:
```
def update_material_qty(self, event=None):
material_name = self.material_name11.get()
if material_name:
for row in self.data_sheet.iter_rows(min_row=2, values_only=True):
if row[0] == material_name:
self.material_qty14.config(values=row[4])
break
```
在这个函数中,我们首先获取输入框中的内容 `material_name`。如果该内容存在,则遍历 Excel 表格中的数据行,并与第一列进行比较,如果匹配则将该行第五列的数据添加到下拉框中。在添加之前,我们可以使用 `self.material_qty14.delete(0, tk.END)` 将下拉框中原有的数据清空。最后,我们在程序中调用这个函数即可。例如,您可以将下拉框的创建代码修改为:
```
self.material_qty14 = ttk.Combobox(self.container_top)
self.material_qty14.grid(row=5, column=1, padx=5, pady=5)
self.material_qty14.bind("<<ComboboxSelected>>", self.update_material_qty)
```
在这个代码中,我们在下拉框创建后绑定了一个事件 `<<ComboboxSelected>>`,当用户选择下拉框中的选项时,会触发 `update_material_qty` 函数。这样,当用户在输入框中输入内容后,选择对应的选项,下拉框中就会显示对应的数据。
阅读全文