class InventoryApp: def init(self, master): self.master = master master.title("物料进出库统计") self.master.state('zoomed') # 窗口最大化 # 打开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.label12 = ttk.Label(self.container_top, text="數量:") self.label12.grid(row=1, column=0, padx=5, pady=5) self.material_qty12 = ttk.Combobox(self.container_top, values=[]) self.material_qty12.grid(row=1, column=1, padx=5, pady=5)self.label6 = ttk.Label(self.container_top, text="品名:") self.label6.grid(row=5, column=0, padx=5, pady=5) self.material_qty6 = ttk.Combobox(self.container_top, values=[]) self.material_qty6.grid(row=5, column=1, padx=5, pady=5)修改這個代碼,獲取第一個下拉輸入框中寫入的值,在打開的excel工作表名為數據的表匹配A列相應數據的第4列數據填寫到第2個下拉輸入框中
时间: 2024-03-10 11:45:31 浏览: 21
好的,以下是修改后的代码:
```python
class InventoryApp:
def __init__(self, master):
self.master = master
master.title("物料进出库统计")
master.state('zoomed')
# 打开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.label12 = ttk.Label(self.container_top, text="數量:")
self.label12.grid(row=1, column=0, padx=5, pady=5)
self.material_qty12 = ttk.Combobox(self.container_top, values=[])
self.material_qty12.grid(row=1, column=1, padx=5, pady=5)
self.label6 = ttk.Label(self.container_top, text="品名:")
self.label6.grid(row=5, column=0, padx=5, pady=5)
self.material_qty6 = ttk.Combobox(self.container_top, values=[])
self.material_qty6.grid(row=5, column=1, padx=5, pady=5)
# 绑定第一个下拉输入框的值
self.material_qty1 = ttk.Combobox(self.container_top, values=[])
self.material_qty1.grid(row=0, column=1, padx=5, pady=5)
self.material_qty1.bind("<<ComboboxSelected>>", self.update_material_qty2)
def update_material_qty2(self, event):
# 获取第一个下拉输入框中所选的物料名称
material_name = self.material_qty1.get()
# 在 "數據" 工作表中匹配相应的第 4 列数据
materials_qty = []
for row in self.data_sheet.iter_rows(min_row=2, max_col=1, values_only=True):
if row[0] == material_name:
materials_qty.append(self.data_sheet.cell(row=row[0].row, column=4).value)
# 将匹配到的数据填充到第二个下拉输入框中的选项列表中
self.material_qty2.config(values=materials_qty)
```
这段代码将第一个下拉输入框绑定到了变量 `material_qty1` 上,并在该下拉输入框中选中物料名称后通过绑定的事件函数 `update_material_qty2()` 来更新第二个下拉输入框中的选项列表。在 `update_material_qty2()` 函数中,我们首先获取了第一个下拉输入框中所选的物料名称,然后在 "數據" 工作表中匹配相应的第 4 列数据,并将匹配到的数据填充到第二个下拉输入框中的选项列表中。