数据筛选:

根据实际需要输出筛选结果,或将筛选结果保存起来。总结起来可以分为三类:

① 将筛选的结果存入学过的数据结构里,比如:列表,元组或字典。
② 将筛选的结果存入文件中。
③ 将筛选的结果打印出来。

#迟到时间超过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))

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐