数据筛选:
根据实际需要输出筛选结果,或将筛选结果保存起来。总结起来可以分为三类:
① 将筛选的结果存入学过的数据结构里,比如:列表,元组或字典。
② 将筛选的结果存入文件中。
③ 将筛选的结果打印出来。
#迟到时间超过45分钟且迟到过3次以上的员工记为考勤不合格,需要把筛选后的结果保存为【10月迟到人员信息.xlsx】,并将整理后的信息上报给领导
#思路:获取数据->使用数据->输出数据
# 1、遍历表的每一行,比较迟到时间和迟到次数,如果为不合格,将该行信息追加到新建的表中
from openpyxl import load_workbook,Workbook
#打开工作表
s=load_workbook('D:/考勤统计.xlsx')
active_s=s.active
#新建工作表
new=Workbook()
active_new=new.active
#获取表头
for row in active_s.iter_rows(min_row=1,max_row=1,values_only=True):
active_new.append(row)
#遍历工作表s
for row in active_s.iter_rows(min_row=2,values_only=True):
if row[3]>45 & row[4]>3:
active_new.append(row)
new.save('D:/迟到人员信息.xlsx')
数据匹配(借助字典):
适用情况:两张表中存在有关联的数据,这时候就需要对表格中的数据进行匹配操作。
具体的操作步骤还是可以按照获取数据,使用数据和数据输出来总结:
1、首先是获取数据,确定要获取的是零散的单元格,是单行/单列,还是多行/多列的数据。
2、接下来就是关键部分使用数据,匹配逻辑在此实现。先要明确表格之间的关联关系,然后将获取到的某一表格中的数据,按照需要存储起来(推荐使用字典,把可以连接表格的数据作为键,要匹配的数据作为值)。再将另一个表格中要匹配的值与字典中对应的值关联起来,实现匹配逻辑。3、最后是数据输出部分。
#数据匹配
#核对两张表中对应的数据是否匹配
#思路:1、获取数据:获取两张表中对应的数据
# 2、使用数据:比较对应的数据是否相等
# 3、输出数据
from openpyxl import load_workbook
s=load_workbook('D:/考勤统计.xlsx')
active_s=s.active
#创建迟到字典
late_dics={}
#取出迟到人员编号和迟到次数
for row in active_s.iter_rows(min_row=2,values_only=True):
id=row[0]
late=row[4]
#将信息添加到字典
late_dics[id]=late
s1=load_workbook('D:/考勤统计1.xlsx')
active_s1=s1.active
#循环取出迟到人员编号和迟到次数
for row1 in active_s1.iter_rows(min_row=2,values_only=True):
id1=row1[0]
late1=row1[4]
#匹配迟到次数是否相等
if late1!=late_dics[id1]:
print('编号{}迟到情况不匹配'.format(id1))