在右下側添加文本標簽 for i, sheet_name in enumerate(self.sheet_names): label = tk.Label(self.unique_listbox, text=sheet_name) # 打开文件并筛选当天日期 workbook = xl.load_workbook(filepath) for sheet_name in self.sheet_names: sheet = workbook.active today = datetime.datetime.now().strftime('%Y/%m/%d') filtered_rows = [] for row in sheet.iter_rows(min_row=3): if row[2].value == today and row[8].value == sheet_name: filtered_rows.append(row) # 在右下側添加文本標簽 label = tk.Label(self.unique_listbox, text=sheet_name) if filtered_rows: label.config(text=f"{sheet_name} - 已點檢") else: label.config(text=f"{sheet_name} - 未點檢") label.grid(row=i // 5, column=i % 5, sticky="ew", padx=1, pady=1)這句代碼中爲什麽只有一個工作表標簽名稱比對
时间: 2024-02-18 09:04:54 浏览: 51
这段代码中只有一个工作表标签名称比对,是因为在循环中,每次都重新赋值了`sheet_name`变量,导致在比对时只能拿到最后一个工作表的名称。如果要比对多个工作表的名称,可以将比对的代码放在`enumerate`循环中。例如:
```
for i, sheet_name in enumerate(self.sheet_names):
# 打开文件并筛选当天日期
workbook = xl.load_workbook(filepath)
for sheet in workbook:
if sheet.title == sheet_name:
today = datetime.datetime.now().strftime('%Y/%m/%d')
filtered_rows = []
for row in sheet.iter_rows(min_row=3):
if row[2].value == today:
filtered_rows.append(row)
# 在右下側添加文本標簽
label = tk.Label(self.unique_listbox, text=sheet_name)
if filtered_rows:
label.config(text=f"{sheet_name} - 已點檢")
else:
label.config(text=f"{sheet_name} - 未點檢")
label.grid(row=i // 5, column=i % 5, sticky="ew", padx=1, pady=1)
```
这样就可以比对多个工作表的名称了。
阅读全文