|
腾讯会议上网课比较方便,但是整理出勤记录有点麻烦。好像雨课堂+腾讯会议可以很方便地整理出勤记录,但是雨课堂界面有点花哨,用起来也不太舒服,而且雨课堂好像不支持绑定腾讯会议的周期性会议号,这个就不好办了,因为学校教务处总是要求提前几次课填写好周期性会议号,总之多一个软件就要多学一些操作,多学一些操作就多一些麻烦。
试了一下python调用excel的功能,可以方便的解决这个事:
打开腾讯会议参会人员信息记录表
图1 腾讯会议参会人员详情.xls
里面有非常详细的参会时长,也就是听课时长,当然真听还是假听不重要,就算是线下到场的也一样有不听的。第一列就是听课人员名单,有的是学号,有的是昵称,有的是班级姓名学号的组合。
先按照学号检索一下,将没有检索到的学生名单输出来,再按照姓名检索一遍,学生不多,只有几百人,所以就没有优化,直接在参会人员名单里又过了一遍,把最后的出勤情况输出到新表格里,保存起来,再排个序就知道哪些学生缺勤或者出勤时间多少了。
图2 输出缺勤名单
图3 出勤统计.xls
图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
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-21 21:33
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社