学生考勤报表管理小程序

  该学生考勤管理小程序是给朋友的写的一个小demo,技术含量不高,难度也不大。放出来就是做个日常记录,有需要的小伙伴可以参考。
  本demo处理的考勤表格式如下:在一个Excel表中有多个子列表,每个子列表中有三个员工的个人信息:部门、姓名、工号,周一至周五的打卡信息等。

  首先要解决的就是加载Excel表格,然后遍历每一个子列表,依次读取每个子列表中的信息。我使用的是xlrd库配合pandas库做一系列操作(安装库很简单,不会的百度即可,pip install xlrd/pandas)。只截取了部分代码。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__: "TC"
import xlrd
import xlwt
from pandas import DataFrame
# 打开工作表
workbook = xlrd.open_workbook('考勤报表.xls')
# 获取所有的工作薄
sheets = workbook.sheet_names()
# 获取sheet总个数
print(workbook.nsheets)
num = workbook.nsheets
# 返回的结果集
person_num = []
person_num1 = []
person_num2 = []
# 遍历每一个子列表
for i in range(num):sheet = workbook.sheets()[i]print(f'第 {str(i + 1)} 个sheet:  {sheet.name} ')rows = sheet.nrows

  获得了每个子列表的信息后,接下来就是通过切片的形式只需要拿到想要处理的范围即可。这里需用到DataFrame的功能,获得表格的行索引和列索引便于后面的切片操作。其实后面的一系列操作就是通过行列的索引进行表格信息的定位读取,然后存放在列表中。

        row_list = []row_list1 = []row_list2 = []for i in range(1, rows):# print(i)# print(sheet.row_values(i))row_data = sheet.row_values(i)row_data_main = DataFrame(row_data)row_data = row_data_main.loc[0:12]row_list.append(row_data)

  通过切片读取到员工信息后,接下来就是对考勤情况的判断处理了,是否签到、签退、缺勤等。对于缺勤的判断很简单就是判断单元格是否为空,这里就需要xlrd库的帮助了,用到写下面两个语句即可。

xlrd.XL_CELL_EMPTY, xlrd.XL_CELL_BLANK

  然后对于是否迟到、早退,用if_elif_else语句判断即可。这里需要说明的是表格给的信息是二十四小时制的,不好直接判断,我采用的是单元格的文本格式(替代二十四小时制)进行判断的,比较方便。
  最后,将处理后得到的信息简单的保存在Excel中便于查看(你不可能直接让人看你的pycharm编辑框吧)。保存时采用了xlwt库处理。

file = 'test.xlsx'
wb = xlwt.Workbook(file)
new_sheet = wb.add_sheet('结果', cell_overwrite_ok=True)
row = ['one']
row1 = ['two']
row2 = ['three']
for i in range(0, len(row)):new_sheet.write(0, i, row[i])
for i in range(0, len(person_num)):new_sheet.write(i + 1, 0, person_num[i])for i in range(0, len(row1)):new_sheet.write(0, i + 1, row1[i])
for i in range(0, len(person_num1)):new_sheet.write(i + 1, 1, person_num1[i])for i in range(0, len(row2)):new_sheet.write(0, i + 2, row2[i])
for i in range(0, len(person_num2)):new_sheet.write(i + 1, 2, person_num2[i])new_sheet.col(0).width = 256 * 50#使得内容在表格中显示的更全
new_sheet.col(1).width = 256 * 50
new_sheet.col(2).width = 256 * 50
wb.save('test.xls')

  最后结果如下,核对后没有错误。

  这只是一个初级demo,处理得很草率,且针对不同的表格信息,部分细节要做变动,但总的思路是一致的,等有空了再优化一下,可以结合PyQt5/HTML做个界面,用Flask框架做一个Web页面更完美。目前仅用于参考学习,欢迎指正,互相学习!

学生考勤报表管理小程序相关推荐

  1. 计算机毕业设计-springboot课堂签到小程序-学生考勤打卡小程序

    计算机毕业设计-springboot课堂签到小程序-学生考勤打卡小程序 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 作者:IT跃迁谷 1.开发环境 开发语言:Java 后台框架:SPrin ...

  2. php考勤系统微信小程序

    下载地址:https://mp.csdn.net/mp_download/manage/download/UpDetailed 项目介绍 php考勤系统微信小程序 系统说明 考勤小程序,通俗来讲&qu ...

  3. springboot+高校自习室座位管理小程序 毕业设计-附源码191028

    基于SpringBoot的高校自习室座位管理小程序 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于学校的各种信息管理也是十分常见的.随着时代发展,越来越多小程序被普遍使 ...

  4. 基于SpringBoot的高校自习室座位管理小程序毕业设计源码191028

    摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于学校的各种信息管理也是十分常见的.随着时代发展,越来越多小程序被普遍使用,小程序的便捷,随时随地即可方便使用的特点,使得越 ...

  5. 农贸市场摊位租金收缴管理小程序开发制作

    智慧农贸小程序适用于农贸市场租户的线上租金收缴,租金账单等信息的接收和查阅. 农贸市场摊位租金收缴管理小程序共分为商户端和管理端,商户端通过微信小程序实现对农贸市场已入驻商户的线上缴费推送提醒.商户线 ...

  6. 学生专属活动室预约小程序

    学生专属活动室预约小程序 管理办法: 1) 活动室面向国学院本.硕.博全体同学开放使用,使用前需通过"学生专属活动室预约"小程序进入"121预约使用"专栏,按照 ...

  7. [附源码]计算机毕业设计勤工俭学管理小程序Springboot程序

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  8. [附源码]计算机毕业设计springboot勤工俭学管理小程序

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  9. 计算机毕业设计PHP勤工俭学管理小程序(源码+程序+VUE+lw+部署)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: phpStudy+ Vscode + Mysql5.7 + HBuilderX+Navicat11+Vu ...

  10. 【附源码】Java计算机毕业设计勤工俭学管理小程序(程序+LW+部署)

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

最新文章

  1. localdate转date时区问题_时间戳和LocalDateTime和Date互转和格式化
  2. mysqlmediumtext,分享面经!
  3. 在Delphi7中调试COM
  4. 【Linux】编译C语言文件(-o -lpthread)
  5. 服务器存档修改,云服务器存档修改器
  6. idea 调用c#接口_Dubbo 接口测试方法
  7. 简单英文题 26 The Nearest Number(python)
  8. 有关VUE学习的经验(2)
  9. IDEA中的将项目提交到远程git仓库
  10. 英特尔傲腾存储业务主管已离职 因个人原因离开
  11. 百度上线独立视频App百度看看,能搜到微视、B站内容?
  12. selector选择器查询
  13. Blocks的申明调用与Queue当做锁的用法
  14. Python-数据类型-4 第七次全国人口普查数据分析
  15. win7显示u盘efi分区_win7下找不到u盘efi分区
  16. python字典类型中键可以是数字吗_python字典key不能是或可以是啥类型
  17. 【Excel】Excel条件格式设置背景色
  18. 杂题收录+简要题解3【杭电多校】
  19. web前端开发薪资,JavaScript的字面量与变量
  20. 手写实现数据库连接池

热门文章

  1. css实现图片水平居中对齐
  2. 形式语言与自动机 第三章 课后题答案
  3. 键盘键码keyCode对照表
  4. 西门子mag6000接线_西门子(SIEMENS)妙声力系列电磁流量计变送器MAGFLO MAG5000 MAG6000中文使用手册.pdf...
  5. android之仿朋友圈程序,Android仿微信朋友圈添加图片的实例代码
  6. Vue富文本编辑器(iceEditor)集成
  7. matlab光学教程,基于MATLAB的物理光学仿真
  8. 视频教程-Go语言区块链开发入门视频教程-区块链
  9. java日常基础知识2
  10. Delphi ADOQuery