# 打开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_name = ttk.Combobox(self.container_top, values=data_list) # 创建标签 self.label1 = ttk.Label(self.container_top, text="PEGA-料号:") self.label1.grid(row=0, column=0, padx=5, pady=5) # 添加下拉框控件到界面上 self.material_name.grid(row=0, 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 20:44:56 浏览: 51
可以在下拉框的绑定事件中获取第一个下拉框中选择的值,然后在打开的Excel文件中查找对应的数据并填充到第二个下拉框中。代码示例如下:
```
import openpyxl
...
# 定义下拉框绑定事件
def on_material_name_select(event):
selected_material_name = material_name.get() # 获取第一个下拉框中选择的值
data_sheet = wb["數據"]
for row in range(2, data_sheet.max_row + 1):
material_name_in_excel = data_sheet.cell(row, 1).value # 获取Excel表格中每一行的第1列数据(即物料名称)
if material_name_in_excel == selected_material_name:
# 找到对应的数据,将第4列数据填充到第二个下拉框中
material_qty_list = [data_sheet.cell(row, 4).value]
material_qty6.config(values=material_qty_list)
break
...
# 打开Excel文件
wb = openpyxl.load_workbook(r"C:\Users\bing3_chen\Desktop\1.xlsx")
record_sheet = wb["記錄"]
data_sheet = wb["數據"]
material_name = ttk.Combobox(container_top, values=data_list)
# 绑定下拉框事件
material_name.bind("<<ComboboxSelected>>", on_material_name_select)
# 创建标签和下拉框
label1 = ttk.Label(container_top, text="PEGA-料号:")
label1.grid(row=0, column=0, padx=5, pady=5)
material_name.grid(row=0, column=1, padx=5, pady=5)
label6 = ttk.Label(container_top, text="品名:")
label6.grid(row=5, column=0, padx=5, pady=5)
material_qty6 = ttk.Combobox(container_top, values=[])
material_qty6.grid(row=5, column=1, padx=5, pady=5)
```
阅读全文