一、引言
现在大学老师收作业一般是收电子版,当作业比较少的时候,把交作业和未交作业的同学名单记录在Excel中可以手工进行,但是当作业比较多的时候,手工记录不但劳动量大,而且易出错。
今日分享一个用xlwings读写Excel文件自动统计作业提交情况的Python程序示例。环境:64位Win 10中文版 + 64位Python 3.7.6
《Python程序设计(基于计算思维和新文科建设)》,ISBN:9787121435577,胡凤国,电子工业出版社,2022年6月。本书是电子工业出版社在国内较早采用纸质版+电子版的创新图书发行模式的第一次尝试。本书是这套创新图书的纸质版部分,与之内容互补的电子版图书将稍后出版。基础篇介绍Python程序设计的入门知识,共12章,包括:⑵ Python软件的安装和Python程序运行;⑶ Python的基本概念(对象、数据类型、表达式、内置函数);排错篇总结初学者常遇到的错误并介绍程序调试方法,包含2章:与本书内容互补的电子版图书包含文本篇和应用篇两部分:文本篇:介绍字符集、编码和文本文件读写的知识,包含了对国家规范《通用规范汉字表》8105个汉字当中难以输入和难以显示的汉字的处理。应用篇:介绍Word、Excel、PPT、PDF、图片等常用办公文件的处理,是大家提高办公和科研效率的好帮手。本书配套有详细的PPT和教学大纲,还有全部例题的程序代码和绝大部分思考题的程序代码。本书配套PPT里面还加入了配套电子版图书中的部分内容,比如字符集和编码,不同编码的文本文件的读写,Word、Excel、PPT、PDF等一些常用办公文件的读写。1、大学文科生, 可选本书当Python教材或自学Python的参考书。2、大学理工科学生, 可选本书当自学Python的参考书。可拿本书当工具书,本书的配套程序会为您节省效率,在当前大数据和新文科的背景下,本书可以为相关领域的量化研究提供技术支持。本书配套的电子版图书中的编码和文本处理知识也可以作为理工科教师和科研人员处理文本数据的参考资料之一,毕竟专门开辟章节介绍国家标准《通用规范汉字表》汉字处理的程序设计图书并不多见。
本书有专门的海龟画图章节,有大量的有趣数学题目,可以培养学生的计算思维,适合对编程感兴趣的中小学生阅读,也适合打算让娃参加编程辅导班的家长朋友参考。本书在各大实体书店和网店均有销售。京东、天猫、当当的购买渠道如下(可扫码直达购买页面)。
三、准备工作
homework文件夹是总的作业文件夹,每道题目提交的作业在总文件夹下用“作业1”、“作业2”、“作业3”、……的规则来命名。
每道作业题提交的作业文件要求用学生本人的姓名加上扩展名来命名(假设没有同名的学生)。
例如,下图是作业1的提交情况:

假设统计作业信息的Excel文件包含若干个工作表,每个工作表的命名按照“作业1”、“作业2”、“作业3”、……的规则来命名,这样作业提交目录跟工作表的名字就可以对应起来。
每个工作表的第一行是标题,第一列是学号,第二列是姓名,第三列是作业是否提交,还有其他一些列。
下面是Excel文件的“作业1”工作表的截图示例:

我们的任务是根据 作业1 文件夹下面的文件来自动更新Excel的 作业1 工作表,若提交作业就在第三列的相应单元格填入√号,若没有提交作业就在第三列的相应单元格填入×号,并用特别的背景色来区分未交作业的同学。
四、程序
程序运行需要安装 xlwings 扩展库,在Windows的命令行窗口中运行pip命令安装就行。程序如下:

程序运行后,会读取Excel文件 作业成绩统计表.xlsx ,自动填入作业1的提交信息之后,保存为一个新的Excel文件 作业成绩统计表_new.xlsx 。
新的Excel文件的“作业1”工作表被自动更新,截图如下:

五、讨论
1、如果有同名的学生,但只交了一份作业,我们就不知道交作业的到底是哪位同学,这时,可以考虑让学生提交的作业文件名中同时包含学号和姓名,当然程序得相应修改;
2、上面的代码只测试了作业1,如果把作业2目录放到总文件夹中,程序简单修改一下也能处理作业2工作表;那么,如何修改程序使得它能自动探测总的文件夹中有哪些作业,自动去更新Excel文件的相应工作表呢?
上面两点讨论,可以在本文现有代码的基础上逐步完成,具体如何实现,请同学们和读者朋友思考。
由于本号文章以辅助教学为主,笔者不建议自己的学生直接拿代码运行,而是建议在理解了思路之后自己敲代码来加深印象,所以本号一般不直接贴代码。如果其他读者朋友有需要代码,请关注本号,加笔者微信联系。欢迎关注微信公众号“语和言”,本公众号将不定期发布对图书《Python程序设计(基于计算思维和新文科建设)》中的Python知识点进行解读和补充的内容。语和言公众号还有读者交流群,读者朋友可以入群一起讨论问题。
欢迎跟图书《Python程序设计(基于计算思维和新文科建设)》的作者胡凤国老师进行交流,电邮:cuchufengguo@163.com。
七、图书目录
图书《Python程序设计(基于计算思维和新文科建设)》目录如下(手机端可以用手指上下滑动下面灰色区域的文字来查看全部目录,电脑端可以用鼠标滚动滚轮或拖动下面文本框右边的滚动条来浏览全部目录):
8.2.4 关于元素可比较的有序序列类对象的通用操作10.3.3 用上下文管理语句with来管理文本文件读写12.12.1 datetime标准库定义的常用类参考文献