def load_excel(self, filename, menu_label, selected_label_text): self.la = menu_label self.workbook = xl.load_workbook(filename) self.sheet_names = sorted(self.workbook.sheetnames) # 按工作表名称从小到大排序 self.selected_label.config(text=selected_label_text) # 更新选中标签文本 data4=self.la if not data4.endswith('.xlsx'): data4 += '.xlsx' # 拼接完整的文件路径 filepath = os.path.join(r'\pcq-smt-ftp01\smt$\CQ SMT-單板測試課\2.生產組\點檢表\點檢歷史資料', data4) # 清空左侧面板 for widget in self.sheet_frame.winfo_children(): widget.destroy() # 清空右下側面板 for widget in self.unique_listbox.winfo_children(): widget.destroy() # 在右下側添加文本標簽 for i, sheet_name in enumerate(self.sheet_names): label = tk.Label(self.unique_listbox, text=sheet_name) label.grid(row=i // 5, column=i % 5, sticky="ew", padx=1, pady=1)在這段代碼中添加一個比對,去打開filepath的文件從第3列篩選出當天日期的行,用生成的工作表的標簽去比對第9列出現的文本内容有沒有相同文本,如果有在在寫入標簽文本框的標簽後面寫上已點檢
时间: 2024-02-18 07:02:47 浏览: 79
Read data from the Excel spreadsheet.zip_Spreadsheet::Read_excel
您可以在这段代码中添加如下的比对来实现您的需求:
```
# 获取当前日期
today = datetime.date.today()
# 打开工作簿
wb = xl.load_workbook(filepath)
# 获取当前选中的工作表名称
selected_sheet_name = self.sheet_names[self.selected_sheet_index]
# 获取当前选中的工作表对象
selected_sheet = wb[selected_sheet_name]
# 获取工作表的最大行数和最大列数
max_row = selected_sheet.max_row
max_col = selected_sheet.max_column
# 遍历第3列,筛选出当天日期的行
for row in range(1, max_row+1):
cell = selected_sheet.cell(row=row, column=3)
if isinstance(cell.value, datetime.datetime) and cell.value.date() == today:
# 获取第9列文本内容
cell = selected_sheet.cell(row=row, column=9)
if cell.value == selected_sheet_name:
# 在标签文本框后面写入“已点检”
label = tk.Label(self.unique_listbox, text=sheet_name + ' 已点检')
label.grid(row=i // 5, column=i % 5, sticky="ew", padx=1, pady=1)
```
这段代码会遍历第3列,筛选出当天日期的行。然后会获取第9列文本内容,如果和当前选中的工作表名称相同,则在标签文本框后面写入“已点检”。
阅读全文