value_rows.append(r)
时间: 2024-05-22 11:12:15 浏览: 13
I'm sorry, as an AI language model, I cannot provide a specific answer without further context. Can you please provide more information about the code snippet and the programming language you are working with?
相关问题
def in_stock(self): # 获取物料名称和数量 material_name = self.material_name.get() material_qty = int(self.material_qty.get()) # 在记录表中查找物料名称 for row in self.record_sheet.iter_rows(min_row=2): if row[0].value == material_name: # 如果找到了,将数量加上去 row[1].value += material_qty break else: # 如果没有找到,就在记录表中添加一行 row = (material_name, material_qty) self.record_sheet.append(row) # 在数据表中查找物料名称 for row in self.data_sheet.iter_rows(min_row=2): if row[0].value == material_name: # 如果找到了,将数量加上去 row[1].value += material_qty break else: # 如果没有找到,就在数据表中添加一行 row = (material_name, material_qty) self.data_sheet.append(row) # 保存Excel文件 self.wb.save(r"C:\Users\bing3_chen\Desktop\1.xlsx") # 清空文本框 self.material_name.delete(0, tk.END) self.material_qty.delete(0, tk.END)修改第一個循環,不要查詢直接寫入,要注意不能覆蓋數據
好的,你的问题是修改第一个循环,直接写入而不是查询是否存在后再加上数量,但要注意不能覆盖已有数据。那么可以这样修改代码:
```
def in_stock(self):
# 获取物料名称和数量
material_name = self.material_name.get()
material_qty = int(self.material_qty.get())
# 在记录表中查找物料名称
for row in self.record_sheet.iter_rows(min_row=2):
if row[0].value == material_name:
# 如果找到了,将数量加上去
row[1].value += material_qty
# 注意不能覆盖已有数据,直接退出函数
return
# 如果没有找到,就在记录表中添加一行
row = (material_name, material_qty)
self.record_sheet.append(row)
# 在数据表中查找物料名称
for row in self.data_sheet.iter_rows(min_row=2):
if row[0].value == material_name:
# 如果找到了,将数量加上去
row[1].value += material_qty
break
else:
# 如果没有找到,就在数据表中添加一行
row = (material_name, material_qty)
self.data_sheet.append(row)
# 保存Excel文件
self.wb.save(r"C:\Users\bing3_chen\Desktop\1.xlsx")
# 清空文本框
self.material_name.delete(0, tk.END)
self.material_qty.delete(0, tk.END)
```
这样修改后,如果在记录表中找到了对应的物料名称,就直接将数量加上去,不再进行添加行的操作。但是要注意不能覆盖已有数据,因此需要在找到对应行后直接退出函数。
if row[2].value == today and row[8].value == sheet_name: datetime_obj = datetime.datetime.strptime(row[3].value, '%H:%M:%S') row_time = datetime_obj.time() if start_time_1 <= row_time <= end_time_1 and start_time_1 <= current_time <= end_time_1: filtered_rows.append(row) elif start_time_2 <= row_time or current_time <= end_time_2: filtered_rows.append(row) label = self.unique_listbox.grid_slaves(row=i // 3, column=i % 3)[0] if filtered_rows: label.config(text=f"{sheet_name} - 已點檢", fg="green") else: label.config(text=f"{sheet_name} - 未點檢", fg="red")
这段代码是一个函数 `refresh_labels` 的一部分,它的作用是根据一些条件更新 GUI 界面上的标签内容和颜色。
具体来说,该函数首先判断是否存在指定的 Excel 文件,如果存在则读取其中的数据。然后遍历 `self.sheet_names` 列表中的每个表格名称,对于每个表格名称,遍历 Excel 文件中对应表格的所有行,筛选出符合条件的行并将其保存到 `filtered_rows` 列表中。最后根据 `filtered_rows` 列表是否为空来确定该表格对应的标签内容和颜色。
需要注意的是,该函数的实现依赖于一些变量和方法,比如 `self.la`、`self.sheet_names`、`self.unique_listbox`、`xl.load_workbook`、`datetime.datetime.now()` 等,这些变量和方法的具体含义和实现方式需要结合上下文来理解。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)