摩若博士岛分享 http://blog.sciencenet.cn/u/邵宇飞

博文

试了一下利用Python整理腾讯会议出勤记录

已有 3108 次阅读 2022-10-18 10:05 |系统分类:教学心得

腾讯会议上网课比较方便,但是整理出勤记录有点麻烦。好像雨课堂+腾讯会议可以很方便地整理出勤记录,但是雨课堂界面有点花哨,用起来也不太舒服,而且雨课堂好像不支持绑定腾讯会议的周期性会议号,这个就不好办了,因为学校教务处总是要求提前几次课填写好周期性会议号,总之多一个软件就要多学一些操作,多学一些操作就多一些麻烦。

试了一下python调用excel的功能,可以方便的解决这个事:

打开腾讯会议参会人员信息记录表

QQ图片20221018081457.png

                                                          图1 腾讯会议参会人员详情.xls

里面有非常详细的参会时长,也就是听课时长,当然真听还是假听不重要,就算是线下到场的也一样有不听的。第一列就是听课人员名单,有的是学号,有的是昵称,有的是班级姓名学号的组合。

先按照学号检索一下,将没有检索到的学生名单输出来,再按照姓名检索一遍,学生不多,只有几百人,所以就没有优化,直接在参会人员名单里又过了一遍,把最后的出勤情况输出到新表格里,保存起来,再排个序就知道哪些学生缺勤或者出勤时间多少了。

QQ图片20221018081837.png

                                                      图2 输出缺勤名单

QQ图片20221018082319.png

                                                   图3 出勤统计.xls

QQ图片20221018082027.png

                                                                    图4 选课学生名单.xls

----------------

代码练习

import xlrd
from xlutils.copy import copy
#打开学生点名簿
read_book = xlrd.open_workbook('2022秋通信2.xls') # 文中图4
#按工作簿定位工作表
shw = read_book.sheet_by_name('sheet0')

#打开腾讯会议参会人员记录表
wbr = xlrd.open_workbook('邵宇飞预定的会议10-16.xls') #文中图1

#按工作簿定位工作表
shr = wbr.sheet_by_name('成员参会概况')

#复制写入文件,以另存的方式写入
wb = copy(read_book)

# 选择工作簿
sh1 = wb.get_sheet(0)
names_ch=[]
banji_ch=[]
icount=[]
for jj in range(1,shw.nrows):
    myxuehao2= str(shw.cell(jj, 1).value)  
    notfound = True   
    for i in range(1,shr.nrows):    
        myxuehao= str(shr.cell(i, 0).value)
        myt0= shr.cell(i, 4).value                 
        if (myxuehao2 in myxuehao) :
            sh1.write(jj, 6, myt0)            
            notfound = False
    if (notfound) :
        print("按学号检索,{} 缺勤".format(shw.cell(jj, 2).value))        
        names_ch.append(shw.cell(jj, 2).value)
        banji_ch.append(shw.cell(jj, 4).value)
        icount.append(jj)
print('********************')
        
for jj in range(len(names_ch)):      
    myname= names_ch[jj]  
    notfound = True
    for i in range(1,shr.nrows):
        myxuehao= str(shr.cell(i, 0).value)
        myt0= shr.cell(i, 4).value  
        if (myname in myxuehao) :
            sh1.write(icount[jj], 6, myt0)            
            notfound = False
    if (notfound) :
        print("再经过姓名检索之后,{},{} 缺勤".format(banji_ch[jj],myname))   #文中图2
            

wb.save('2022-10-16-通信等-出勤统计.xls') # 文中图3



https://blog.sciencenet.cn/blog-43208-1359879.html

上一篇:我和我儿子的童年PK
下一篇:年底碎碎念
收藏 IP: 42.6.192.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-21 21:33

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部