# 在右下側添加文本標簽 for i, sheet_name in enumerate(self.sheet_names): print(sheet_name) filtered_rows = [] # 打开文件并筛选当天日期 if os.path.exists(filepath):#判断 Excel 文件是否存在。 workbook = xl.load_workbook(filepath)#打开 Excel 文件。 if sheet_name in workbook.sheetnames:#判断打开的 Excel 文件是否包含指定的工作表名称,其中 workbook.sheetnames 返回一个列表,包含所有工作表的名称。 sheet = workbook[sheet_name] today = datetime.datetime.now().strftime('%Y/%m/%d') print(today) 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)這句代碼中fileoath只有一個工作表,應該是用sheet_name去比對fileoath這個表中數據,怎麽修改
时间: 2024-01-15 07:03:40 浏览: 27
根据您提供的代码,是通过遍历所有的工作表名称,然后依次打开每个工作表进行筛选。所以,`filepath`应该是一个完整的Excel文件路径,而不是一个工作表路径。
如果您只需要筛选一个工作表的数据,可以将`sheet_name`和`filepath`的逻辑分开处理,例如:
```
sheet_name = "工作表1"
filepath = "path/to/your/file.xlsx"
if os.path.exists(filepath):
workbook = xl.load_workbook(filepath)
if sheet_name in workbook.sheetnames:
sheet = workbook[sheet_name]
today = datetime.datetime.now().strftime('%Y/%m/%d')
filtered_rows = [row for row in sheet.iter_rows(min_row=3) if row[2].value == today and row[8].value == sheet_name]
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=0, column=0, sticky="ew", padx=1, pady=1)
```
这样,您只需要将`sheet_name`和`filepath`修改为您需要的工作表名称和Excel文件路径即可。