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 22:45:29 浏览: 59
您可以按照以下方式修改代码来实现您的要求:
1. 在 `init()` 函数中,将第一个下拉输入框的值绑定到一个变量中,例如 `material_qty1`。
2. 添加一个函数,用于在打开的 Excel 工作表 "數據" 中匹配 A 列相应数据的第 4 列数据,并返回一个列表。
```python
def get_materials_qty(self, material_name):
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)
return materials_qty
```
3. 在需要修改的代码块中,使用 `get_materials_qty()` 函数来获取与第一个下拉输入框中所选的物料名称相应的第 4 列数据,并将其填充到第二个下拉输入框中的选项列表中。
```python
material_name = self.material_qty1.get()
materials_qty = self.get_materials_qty(material_name)
self.material_qty2.config(values=materials_qty)
```
阅读全文