Python 獲取工作薄1中所有工作表名,寫入一個列表1中,在打開另一個工作薄2,獲取當前工作表,獲取當前時間判斷是在08:00到19:00之内的就在第7列篩選出内容是D的内容,如果是在20:00到07:00之内的在7列篩選出内容是N的内容,然後在第3列獲取日期為當天相應的日期整行數据寫入另一個列表2中,然後用列表1的工作表名的内容去列表2中的第1列判斷是否有相同内容,如果有就在列表1相應數據後面寫上已點檢,沒有就寫為點檢,最後將列表1的數據顯示到這個列表框中
时间: 2024-03-28 15:41:36 浏览: 56
Python在ABAQUS中,python在abaqus中的应用电子版,Python
5星 · 资源好评率100%
这是一个比较复杂的问题,需要使用Python的一些模块和技巧来完成。以下是一个可能的代码实现,供参考:
``` python
import openpyxl
import datetime
# 获取工作薄1中所有工作表名,写入一个列表1中
wb1 = openpyxl.load_workbook('工作薄1.xlsx')
sheet_names = wb1.sheetnames
list1 = []
for name in sheet_names:
list1.append(name)
# 打开另一个工作薄2
wb2 = openpyxl.load_workbook('工作薄2.xlsx')
# 获取当前工作表
current_sheet = wb2.active
# 获取当前时间
now = datetime.datetime.now()
# 判断当前时间段
if now.hour >= 8 and now.hour < 20:
keyword = 'D'
else:
keyword = 'N'
# 在第7列筛选出符合条件的行,并在第3列获取日期为当天相应的日期整行数据写入另一个列表2中
list2 = []
for row in current_sheet.iter_rows(min_row=1, max_row=current_sheet.max_row, min_col=1, max_col=current_sheet.max_column):
if row[6].value == keyword and row[2].value.date() == now.date():
temp_list = []
for cell in row:
temp_list.append(cell.value)
list2.append(temp_list)
# 用列表1的工作表名的内容去列表2中的第1列判断是否有相同内容,如果有就在列表1相应数据后面写上已点检,没有就写为点检
for i in range(len(list1)):
for j in range(len(list2)):
if list1[i] == list2[j][0]:
list1[i] += '已点检'
break
else:
list1[i] += '点检'
# 将列表1的数据显示到列表框中
for item in list1:
print(item)
```
需要注意的是,上面的代码仅供参考,实际使用时可能需要根据具体情况进行修改和调整。同时,这段代码也有一些局限性,例如需要保证工作薄1和工作薄2中的数据格式和结构是一致的,否则可能会出现错误。
阅读全文