filepath = os.path.join(pinjie, self.la + '.xlsx') for i, sheet_name in enumerate(self.sheet_names): filtered_rows = [] if os.path.exists(filepath): workbook = xl.load_workbook(filepath) sheet = workbook.active today = datetime.datetime.now().strftime('%Y/%m/%d') cell_value = sheet.cell(row=1, column=1).value if cell_value is not None and cell_value != '': for row in sheet.iter_rows(min_row=1): if row[2].value == today and row[8].value == sheet_name: filtered_rows.append(row)在這個代碼添加一個獲取當前時間,如果當前時間在08:00到19:00之内就在篩選完日期后再在第4列篩選出早上8點到下午19點的時間,如果不在這個時間内就篩選出下午20點到早上07點的時間,再對第9列
时间: 2024-02-21 19:02:20 浏览: 79
可以按照以下方式修改代码来实现你的需求:
```
import datetime
...
current_time = datetime.datetime.now().time()
start_time_1 = datetime.time(8, 0, 0) # 早上8点
end_time_1 = datetime.time(19, 0, 0) # 下午7点
start_time_2 = datetime.time(20, 0, 0) # 晚上8点
end_time_2 = datetime.time(7, 0, 0) # 早上7点
...
if row[2].value == today and row[8].value == sheet_name:
row_time = row[3].value.time() # 获取时间,假设时间在第4列
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)
```
这样就可以在筛选日期的基础上,根据当前时间再次筛选出符合时间要求的数据了。如果当前时间在早上8点到晚上7点之间,则筛选第4列早上8点到下午7点的时间;如果当前时间在晚上7点到早上7点之间,则筛选第4列晚上8点到早上7点的时间。然后再对第9列进行操作。
阅读全文