精华内容
下载资源
问答
  • 此电脑考勤记录软件的操作方法是先设置好部门,再输入或导入人事资料,再设置一下上下班次,分配一下员工班次。以上设置好后,就可以统计出员工的考勤出勤状况。此电脑记录软件可以统计出员工的出勤天数、正班工时、...
  • 员工考勤软件用哪款比较好啊?考勤系统是指一套管理公司的员工的上下班考勤记录等相关情况的管理系统。是考勤软件与考勤硬件结合的产品,一般为HR部门使用,掌握并管理企业的员工出勤动态。考勤系统,在包含薪资计算...

    员工考勤软件用哪款比较好啊?考勤系统是指一套管理公司的员工的上下班考勤记录等相关情况的管理系统。是考勤软件与考勤硬件结合的产品,一般为HR部门使用,掌握并管理企业的员工出勤动态。考勤系统,在包含薪资计算模块的情况下,可以灵活定义各个工资项目的计算公式,自动调用员工的出勤数据、人员资料、就餐等与工资相关的数据,计算出员工的工资情况,可提供银行代发工资所需的相关文件。同时提供丰富的统计分析报表,可即时掌握企业工资支出情况。

    钉钉

    相信国内考勤打卡比较普及的应该算是钉钉了,钉钉的主要功能是智能考勤排班、随时了解团队状态、人性化考勤。但如果是专业的人事管理就不建议,以设立分组为例,需要重复将同一个员工先加入花名册、再加入部门,若是在不同的考勤组,员工的各项资料要不断来回输入三四遍。钉钉是阿里巴巴集团主打的一款企业级SaaS软件,钉钉在其产品定位上要打造成兼具职场社交与管理的软件。钉钉在使用体验上进行了较大的优化,并且流程管理比较清晰,企业可以通过钉钉进行日常办公以及有关的在线交流功能。钉钉在阿里巴巴早期定位是做成一款微信竞品,欲打破腾讯在社交领域的垄断地位,开辟其电商业务在社交领域新的场景,这种产品上的考量导致钉钉在SaaS软件功能上注重沟通的流畅性,对于人事管理一些较为深度的功能处于为考虑状态。钉钉适合不少中小型企业的人事管理,但对于较大规模企业的办公及人事管理来讲存在较大的改善空间,应用场景存在较大的想象空间。由于缺乏较深维度的绩效、招聘以及投入回报分析,导致不少企业并没有真正将钉钉作为企业主导的人力资源管理软件。

    和飞信

    公司在该软件上添加“考勤打卡”应用后,企业将新建考勤组名称、添加考勤人员和考勤地点后,员工便可和飞信手机端右滑进入负一屏,完成日常考勤打卡,特别是外派驻点员工较多的企业,方便员工考勤打卡。另外还有电话会议、视频会议、移动审批、企业通讯录、工作日志、公告、企业新闻等应用。

    掌上考勤

    工提供日常考勤的手机考勤软件,该软件解决了传统打卡不方便的问题,用户可以随时移动打卡,方便又省时。

    欢雀HR

    移动端GPS定位的考勤软件平台,APP、微信小程序都可以打卡。自动关联花名册,快速设置考勤分组。实现任意时间、地点打考勤签到功能,为企业远程办公、外勤人员(业务人员、出差员工)异地打卡提供了便捷。HR甚至不用每月可以直接导出Excel格式制作标准考勤表,考勤统计数据自动生成后,就会关联薪酬模块,按照考勤计薪规则一键算薪。欢雀HR SaaS人力资源系统,涵盖企业管理、组织人事、智能档案、六项扣除、招聘管理、绩效管理、培训管理、人才发展等多个模块,通过员工自助APP、微信、钉钉、PC等多端口登录,打通企业管理各个环节,以SaaS等方式实现信息共享,打破人力资源管理壁垒。欢雀HR SaaS人事管理系统致力于帮助公司搭建,管理,盘活专属人度才数据库,不浪费任何一份人才简历。能够搭建专属的人才简历库,将员工资料保存如身份证、合同、简历、入职登记表等存档和下载,并支持简历标签检索,将人才梯队建设的全道过程进行可视化、及时分析和优化。

    无论是什么企业,考勤都是必不可少的,无规矩不成方圆。在选择考勤管理系统的时候,要结合公司规模、企业发展方向、公司行业、预算等方面综合考虑。

    展开全文
  • 华捷员工考勤管理系统软件用于记录员工一天中正班上了几个小时,加班了几个小时,产品做的件数,是否迟到,是否旷工等,并可一键计算所有员工工资。解决了用笔手工记录的麻烦
  • 企业员工考勤管理子系统

    千次阅读 2017-11-16 12:30:55
    企业员工考勤管理子系统企业员工考勤管理子系统

    企业员工考勤管理子系统

    一.需求分析

    1.系统背景分析

    现在不论哪个企业,都要进行考勤,一些企业在考勤管理方面用了大量的人力和财力,不说准确度和可信度如何,其效率很低,而且容易出错,不利于管理。所以人工考勤已经很难再满足企业规范化管理的要求,随着数据库技术的发展和企业信息化建设的进行,使用计算机管理考勤成为一种主流趋势,它不仅为企业减少了人力财力的付出,而且也大大减轻了考勤工作人员的工作量。

    本文系统的阐述了企业考勤管理设计开发的全过程。包括系统需求调查分析,概念结构设计,逻辑结构设计等部分。

     

    2.数据流程图:

     

                                                记录出差情况

                       出差数据                                                           

            基本信息     请假数据                     记录请假情况                        

                       加班数据                     记录加班情况                         

                       出勤数据                                                        

    当前工作                                           记录出勤情况                       

             员工新工作                                                                 

                     更新后的部门信息        已分                                    

                                          配好                           记录

    员工信息     部门基本信息                  的工资                统计出勤记录

     

                                                                          已统计信息

     

     

                                                                  调整

                                            工资记录

                                                  结算

     

     

     

    3.数据字典:

    1),数据项描述

    编号

    数据项名称

    别名

    数据类型

    长度

    说明部分

    1

    员工编号

    yno

    bigint

    10

    前五位为部门编号,后五位为顺序编号

    2

    员工姓名

    yname

    nchar

    10

    登记信息,查询直接、方便

    3

    员工性别

    ysex

    nchar

    5

    性别是区分员工的一个大致范围

    4

    出生日期

    birth

    nchar

    15

    可以得出员工的工龄

    5

    部门编号

    bno

    bigint

    5

    划分不同的部门

    6

    职务

    duty

    nchar

    20

    对应不同的部门,区分员工

    7

    部门名称

    bname

    nchar

    20

    参照部门编号

     

    部门经理职工号

    bmanagerno

     

     

    参照员工编号

    8

    日期

    time

    nchar

    15

    记载发生变化的时期

     

    出勤编号

    workno

    bigint

    20

    前八位为当天日期,中间两位设为00,后十位为员工编号

    9

    上班时间

    ondutytime

    nchar

    10

    上班时间为800

    10

    下班时间

    offdutytime

    nchar

    10

    下班时间为1730

     

    加班编号

    overtimeno

    bigint

    20

    前八位为当天日期,中间两位设为11,后十位为员工编号

    11

    加班时间长度

    overtimelength

    int

    5

    清楚加班了多长时间

    12

    加班费

    overtimefee

    int

    5

    根据加班时间来算加班费,一小时20元来计算。

     

    出差编号

    travelno

    bigint

    20

    前八位为当天日期,中间两位设为22,后十位为员工编号

    13

    出差起始时间

    tstarttime

    nchar

    10

    记载出差时间长度

    14

    出差结束时间

    tendtime

    nchar

    10

    记载出差时间长度

    15

    出差过程描述

    process

    nchar

    25

    具体描述出差路程及相关信息

    16

    出差补助

    allowance

    int

    5

    根据出差描述来给予相应的补助,要据路程、时间及住宿来判断,根据发票来报销费用

     

    请假编号

    leaveno

    bigint

    20

    前八位为当天日期,中间两位设为33,后十位为员工编号

    17

    请假起始时间

    lstarttime

    nchar

    10

    记载请假时间长度

    18

    请假结束时间

    lendtime

    nchar

    10

    记载请假时间长度

    19

    请假原因

    reason

    nchar

    25

    说明请假原因

    20

    扣除奖金

    reducemoney

    int

    5

    由于没有上班,当天的工资还是要照常扣除,但是若工作若出现差错,不会担负责任

     

    月度考勤编号

    mattendno

    nchar

    20

    前八位为当天日期,中间两位设为44,后十位为员工编号

    21

    累计正常工作时间

    ljworktime

    nchar

    10

    算出正常工作时间,是评定基本工资的参考

    22

    累计加班时间

    ljovertime

    nchar

    10

    算出加班时间,评定奖金

    23

    累计请假时间

    ljleavetime

    nchar

    10

    算出请假时间,扣除当天的工资

    24

    累计出差时间

    ljtraveltime

    nchar

    10

    算出出差时间,并报销出差的费用

    25

    迟到次数

    latetimes

    int

    5

    让员工及领导清楚考勤情况

    26

    早退次数

    leavetimes

    int

    5

    让员工及领导清楚考勤情况

    27

    旷工次数

    absenttimes

    int

    5

    让员工及领导清楚考勤情况,并进行相应的罚款措施,旷工一次罚款50

    28

    基本工资

    basicwage

    int

    10

    让员工清楚基本工资

    29

    奖金

    bonus

    int

    10

    让员工清楚奖金

    30

    实际工资

    realwage

    int

    10

    让员工清楚实际工资

     

    2)数据结构描述

    编号

    数据结构名

    组成属性

    1

    员工信息

    员工编号,员工姓名,员工性别,出生日期,职务,部门编号

    2

    部门信息

    部门编号,部门名称,部门经理职工号

    3

    出勤记录

    出勤编号,日期,上班时间,下班时间

    4

    加班记录

    加班编号,日期,加班时间长度,加班费

    5

    出差记录

    出差编号,出差起始时间,出差结束时间,出差过程描述,出差补助

    6

    请假记录

    请假编号,请假起始时间,请假结束时间,请假原因,扣除奖金

    8

    月度考勤统计

    月度考勤编号,员工编号,日期,累计正常工作时间,累计加班天数,累计出差天数,累计请假天数,迟到次数,早退次数,旷工次数

    9

    工资表

    工资编号,基本工资,奖金,实际工资

    3)数据流描述

    编号

    数据流名

    数据流来源

    数据流去向

    1

    基本信息

    招新员工

    调配工作

    2

    当前工作

    员工

    调配工作

    19

    已统计信息

    统计信息

    月度考勤信息

    20

    调整

    月度考勤信息

    工资评估

    21

    结算

    工资

    工资评估

    22

    工资记录

    工资

    处理工资

    23

    已分配好的工资

    处理工资

    员工

    4)数据存储

    数据存储名

    输入数据流

    输出数据流

    说明

    员工信息

    招新的员工

    当前工作

     

    部门信息

    更新后的部门信息

    部门的基本信息

     

    月度考勤统计

    已统计的信息

    再调整信息

    对统计的信息进行调整

    5)处理过程

    处理过程名

    输入数据流

    输出数据流

    说明

    调配工作

    当前的工作和部门的基本信息

    员工的新工作,更新后的部门信息

     

    导入数据

    出差,请假,加班,出勤的数据

    记录出差,请假,加班,出勤的情况

     

    工资评估

    考勤信息的调整

    根据工资评估进行结算

    根据相应的评估方法来算基本工资,奖金和实际工资

    二.概念结构设计

    经过调查、信息流程分析、数据收集,并结合需求分析,明确了该子系统的功能:

    A. 给员工编号,登记其基本信息。

    B. 给各部门编号、命名,确定其职责范围,并任命部门经理。

    C. 对员工的考勤数据进行登记,并进行月度考勤统计。

    D. 对员工的月度考勤统计的结果来核算员工工资。

     

    实体和属性的联系

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    系统基本的E-R

     

                           1                       n

     

                                                                                  1

                                            n               n                1

              1

                      1                     n               n               1

                           1

                                            

                         1                                  n              1

                                            n           

     n            1       1

                                            n               n              1

     

     

     

      1           1

     

     

     

    E-R图调整的准则:

    现实世界中的事物能作为属性对待的尽量作为属性对待;

    属性和实体的划分:属性中不具有需要描述的信息,即属性是不可分的数据项,不再包含其他信息。

     

    实体属性定义:

    员工(员工编号、员工姓名、员工性别、出生日期、职务、部门编号);

    部门(部门编号、部门名称、部门经理职工号);

    出勤记录 (出勤编号、日期、上班时间、下班时间);

    请假记录(请假编号、请假起始时间、请假结束时间、请假原因、扣除奖金);

    加班记录(加班编号、加班时间长度、日期、加班费);

    出差记录(出差编号、出差起始时间、出差结束时间、出差描述、补助资金);

    月度考勤统计(月度考勤编号、员工编号、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);

    工资(工资编号、基本工资、奖金、实际工资);

     

    具体调整如下:

    1.出勤记录,请假记录,加班记录,出差记录本应作为员工的一个属性,但是其中还涉及到相关的奖金待遇及具体描述,则单独作为一个实体;

    2.工资单独作为一个实体,因为此处强调的是员工的出勤工资,则分开来写。

    三.逻辑结构设计

    1、实体所对应的关系表:

    员工表(employee

    列名

    别名

    类型

    长度

    备注

    员工编号

    yno

    bigint

    10

    设为主码

    员工姓名

    yname

    nchar

    10

     

    员工性别

    ysex

    nchar

    5

     

    出生日期

    birth

    nchar

    15

     

    职务

    duty

    nchar

    20

     

    部门编号

    bno

    bigint

    20

    外码,参照部门表

     

    部门表:(branch

    列名

    别名

    类型

    长度

    备注

    部门编号

    bno

    bigint

    5

    设为主码

    部门名称

    bname

    nchar

    20

     

    部门经理职工号

    bmanagerno

    nchar

    5

    外码,参照职工表

     

    出勤记录表(work_register:

    列名

    别名

    类型

    长度

    备注

    出勤编号

    workno

    bigint

    20

    设为主码

    日期

    time

    nchar

    15

     

    上班时间

    ontudytime

    nchar

    10

     

    下班时间

    offdutytime

    nchar

    10

     

     

    请假记录表:(leave_register):

    列名

    别名

    类型

    长度

    备注

    请假编号

    leaveno

    bigint

    20

    设为主码

    请假起始时间

    lstarttime

    nchar

    10

     

    请假结束时间

    lendtime

    nchar

    10

     

    请假原因

    reason

    nchar

    25

     

    扣除奖金

    reducemoney

    int

    5

     

     

    加班记录表:(overtime_register):

    列名

    别名

    类型

    长度

    备注

    加班编号

    overtimeno

    bigint

    20

    设为主码

    加班时间长度

    overtimelength

    int

    5

     

    日期

    time

    nchar

    15

     

    加班费

    overtimefee

    int

    5

     

     

    出差记录表:(travel_register):

    列名

    别名

    类型

    长度

    备注

    出差编号

    travelno

    bigint

    20

    设为主码

    出差起始时间

    tstarttime

    nchar

    10

     

    出差结束时间

    tendtime

    nchar

    10

     

    出差描述

    process

    nchar

    25

     

    补助资金

    allowance

    int

    5

     

     

    月度考勤统计表(month_attend):

    列名

    别名

    类型

    长度

    备注

    月度考勤编号

    mattendno

     

     

    设为主码

    员工编号

    yno

    bigint

    20

     

    日期

    time

    nchar

    15

     

    累计正常工作时间

    ljworktime

    nchar

    10

     

    累计请假

    ljleavetime

    nchar

    10

     

    累计出差

    ljtraveltime

    nchar

    10

     

    累计加班

    ljovertime

    nchar

    10

     

    迟到次数

    latetimes

    int

    5

     

    早退次数

    leavetimes

    int

    5

     

    旷工次数

    absenttimes

    int

    5

     

     

    工资表

    列名

    别名

    类型

    长度

    备注

    工资编号

    workno

    bigint

    20

    设为主码

    基本工资

    basicwage

    int

    10

     

    奖金

    bonus

    int

    10

     

    实际工资

    realwage

    int

    10

     

     

    具体调整如下:

    1.出勤记录,请假记录,加班记录,出差记录本应作为员工的一个属性,但是其中还涉及到相关的奖金待遇及具体描述,则单独作为一个实体;

    2.工资单独作为一个实体,因为此处强调的是员工的出勤工资,则分开来写。

    2、用户子模式设计

    考勤(员工编号、员工姓名、部门名称、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);

    工资(员工编号、员工姓名、部门名称、职务、基本工资、奖金、实际工资);

    因为员工对于其他情况不会经常关注,经常使用的以上各项,所以设立考勤和工资关系。

     

    四、物理结构设计

    1、关系模式存取方法分析:

    对于该系统的各个关系最经常使用的操作就是查找,则采用B+树作为索引:

    1)、对以下经常在查询中出现的关系的码建立索引:

    A 对员工的员工编号建立索引,使其按照员工编号的升序存放。

    B 对部门的部门编号建立索引,使其按照部门编号的升序存放。

     

         2)、由于下面几个关系模式的更新频率较高,系统为维护索引要付出较大的代价,因此没有定义索引:

    月度考勤统计(月度考勤编号、员工编号、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);

    工资(工资编号、基本工资、奖金、实际工资);

     

     

    2、存储结构设计

    经过分析得出本考勤管理子系统信息处理的特点是员工考勤和工资的数据不仅经常需要查询,而且更新速度快,每月就要更新一次。

    针对以上特点,设计如下:

    (1) 确定数据库的存放位置

    为了提高系统性能,现根据应用情况将数据按照易变部分和稳定部分、经常存取部分和存取频率较低的部分分别在两个磁盘上存放。

    1)、经常存取部分:员工,出勤记录,请假记录,加班记录,出差记录,月度考勤统计,工资。

    2)、存取频率较低的部分:部门

    (2) 确定系统配置

    此管理子系统需要的微机数量和规模都不必太大,但在系统设计时应考虑到今后的发展需求,在选择硬件设备、服务器操作系统、数据库时都考虑到能够逐步的增加和扩展。

    1)、硬件配置要求:

    CPU:PII200以上。

    内存:32MB以上。

    硬盘:2.1GB以上(可用空间最好在160MB以上)。

    打印机:推荐EPSON  LQ-1600KII

          2)、软件配置要求:

              WINDOWS95、98、2000中文版操作系统。

     

    五、数据库完整性设计

    1、主键及唯一性索引建立:

    A 将员工employee表中的yno属性定义为码。参照员工表。

    B 将部门branch表中bno属性定义为码。参照部门表。

    C 将出差记录travel_register表中的travelno 属性定义为码。参照出差记录表。

    D 将请假记录leave_register表中的leaveno属性定义为码。参照请假记录表。

    E 将加班记录overtime_register表中的overtimeno属性定义为码。参照加班记录表。

    F 将出勤记录work_register表中的workno属性定义为码。参照出勤记录表。

    G 将月度考勤统计month_attend表中的monthno属性定义为码。参照月度考勤表。

       H 将工资wage表中的wageno属性定义为码。 参照工资表。

     

     

    2.对以下经常在查询中出现的关系的码建立索引:

    1)、在employ表的yno(员工编号)列上建立一个聚簇索引,而且employ表中的记录将按照yno升序存放。

    Create cluster index employno on employ(yno);

    2)、在branch表的bno(部门编号)列上建立一个聚簇索引,而且branch表中的记录将按照bno升序存放。

    Create cluster index branchno on branch(bno);

     

    2、参照完整性设计

    关系模型的参照完整性在create table 中用foreign key短语定义哪些列为外码,用references短语指明这些外码参照哪些表的主码。

    A 定义出差Travel表中的参照完整性,将travelno,yno设为主码,travelno参照travel_register表的ravelno,yno参照employee表的yno。

    B 定义请假Leave表中的参照完整性,将leaveno,yno设为主码,leaveno参照leave_register表的leaveno,yno参照employee表的yno。

    C定义加班Overtime表中的参照完整性, 将overtimeno,yno设为主码,overtimeno参照overtime_register表的overtimeno,yno参照employee表的yno。

    D 定义出勤Work表中的参照完整性,将workno,yno设为主码,workno参照work _register表的workno,yno参照employee表的yno。

    3、check约束的定义

    员工表中的ysex只能取“男”或“女”。

    alter table employ

    add constraint c1 check(value in(‘男’,’女’));

     

    4、触发器设计

    A 在删除员工之后,显示员工的基本信息

    B 不准删除部门的信息。

    C 员工的信息更改之后,相应的月度考勤统计表员工编号也要跟着变化。

    六、数据库视图设计

    视图是从一个或几个基本表导出的表,一经定义,就可以和基本表一样被查询、被删除。

    1)、定义一个反映员工的年龄的视图。

    create view y_age(yno,yname,age)

    as

    select yno,yname,2010-birth

    from employee;

    2)、建立反映员工工资情况的视图。

    create view y_wage(yno,yname,basicwage,bonus,realwage)

    as

    select yno,yname,basicwage,bonus,realwage

    from employ and wage;

     

    3)、建立员工考勤情况的视图。

    create view y_attend(yno,yname,ljworktime,ljleavetime,ljtraveltime,ljovertime)

    as

    select yno,yname,ljworktime,ljleavetime,ljtraveltime,ljovertime

    from employee and monthattend;

     

    七、数据库存储过程设计

    为方便查询,设计以下存储过程:

    查询员工信息:员工(员工编号、员工姓名、员工性别、出生日期、职务、部门编号);

    查询员工工资信息:工资(员工编号、员工姓名、部门名称、职务、基本工资、奖金、实际工资);

    查询员工考勤信息:考勤(员工编号、员工姓名、部门名称、日期、累计正常工作时间、累计请假、累计出差、累计加班、迟到次数、早退次数、旷工次数);

     

    八、权限设计

    此考勤子系统对于员工都是开放的,方便员工查询考勤,工资等信息。

    九、总结

    通过以上数据库的设计,我深刻了解了每个阶段的设计内容:系统需求分析、概念结构设、逻辑结构设计、物理结构设计、数据库的实施和维护。

    分析该企业考勤子系统的功能是首先能提供查询员工的信息,其次让员工能清楚自己的考勤情况,并相应的查询到工资的变化。考勤情况由请假记录,加班记录,出勤记录,出差记录来统计出的,详细的结果统计在月度考勤表中。员工都可以很详细的查询自己的情况,经理也可以根据此情况来考核员工。由于工资是随着考勤数据来变化的,因此工资要单独作为一个实体,这样很容易就能查到相应的详细情况。

    在做此子系统时,刚开始还不知道大概的格式,只是在盲目的做,这样到最后自己都不知道下一步该做什么了,所以凡事都要严格按照规则做,然后再发挥下,这样子就不会半途而废了。之后我严格按照书上的过程做,发现其实做该子系统并没有我想象中难,柳暗花明又一村,攻克一个难题之后,心中大悦,只要细心,慢慢来,一步一步做,一样可以做的出色,不过前提是要对制作子系统的过程熟悉,并且灵活运用。

    所以做此子系统最大的收获就是制作过程我已经很熟悉了,然后再做其他系统应该就会得心应手了。

    参考文献:《数据库系统概论》王珊 萨师煊 高等教育出版社(第四版)2006.5

    展开全文
  • 有些考勤软件导出的考勤记录符合数据库的格式,每条记录是一行,处理起来很方便,但还有一些人脸识别考勤机,可能是比较便宜吧,只提供u盘导出数据的功能, 然后导出的数据每个员工是一行,并且还一个单元格中包含多...

    看下图的考勤记录, 是不是有些眼晕,还不知怎么搞定它?

    326205f281425f9da531c2a4de44b396.png

    原始考勤记录

    今天就再说说对考勤记录的处理,有些考勤软件导出的考勤记录符合数据库的格式,每条记录是一行,处理起来很方便,但还有一些人脸识别考勤机,可能是比较便宜吧,只提供u盘导出数据的功能, 然后导出的数据每个员工是一行,并且还一个单元格中包含多条考勤记录,用换行符进行了分隔,如下图,对于这种表格的考勤记录那还能处理吗,当然是可以的,只要它的数据有规律,那就可以进行处理,不过很显然没法使用excel的函数公式来处理了,而是使用 python编程来对表格进行处理,最终还原成每行一条考勤记录的状态。

    第一步:找数据规律

    找好规律才能对数据进行处理,经过观察我们发现它有以下的规律

    1、有一个标题行,里面存的是月份中的每一天,所以最多只有31列

    2、工号和姓名单独保存在一行,工号在A列,姓名在I列

    3、工号姓名的下一行是员工的考勤数据

    4、一个单元格中的多条考勤记录是通过换行来分隔的

    第二步:数据分解原理

    1、先获取表格中的最大行和最大列,用来确定考勤记录的范围

    2、使用双循环嵌套,按行进行数据的读取

    3、对读取到的内容进行组合、拼接等

    4、保存读取到的内容至一个新的表格中

    第三步:使用python进行编程

    需要引用openpyxl包,用它处理excel最是方便了

    为了便于理解,直接设置好考勤记录文件的位置和名称,让python可以直接读取到文件,我们把它放在D盘根目录下面,读取表格的最大行和列。

    print("#"*25 + "使用说明" +"#"*25)

    print("# 原始考勤表格请放至D盘根目录下,更改名称为'刷卡记录.xlsx' ")

    print("# 请按照提示输入四位数年份和两位数月份 ")

    print("#"*60)

    print("")

    rows,cols=1,1

    sheetName="刷卡记录"

    tableName=r"D:刷卡记录.xlsx"

    year=""

    Y=input("请输入考勤的年份:")

    M=input("请输入考勤的月份:")

    wb=xl.load_workbook(tableName)

    sheet=wb.get_sheet_by_name(sheetName)

    rows=sheet.max_row

    cols=sheet.max_column

    print("考勤表格总共有行数%d,列数%d"%(rows,cols))

    用代码创建一个新表,并初始化表头,只需要三列就行了,保存号码、姓名、日期

    ws=wb.create_sheet("Sheet1")

    sheetNew=wb.get_sheet_by_name("Sheet1")

    sheetNew["A1"].value="号码"

    sheetNew["B1"].value="姓名"

    sheetNew["C1"].value="日期"

    使循环来读取原始表格中的数据,在读取完成后保存成一个新表

    hm="";xm="" #号码,姓名js_i,js_j=1,1 #新表记数for i in range(5,rows+1): xh="" print("正在转化第%d行数据..." %(i)) for j in range(1,cols+1): xh=sheet.cell(row=i,column=j).value if xh is None: continue if xh in "工 号: ": hm=sheet.cell(row=i,column=3).value xm=sheet.cell(row=i,column=11).value break else: year=str(Y)+"-"+str(M)+"-" + str(j) + " " xh_str=xh.split('') for x in xh_str: if x: js_i += 1 sheetNew.cell(row=js_i, column=1).value = hm sheetNew.cell(row=js_i, column=2).value = xm sheetNew.cell(row=js_i, column=3).value = year + x + ":00"try: wb.save(tableName) print("保存完成,请打开查看...")except: print("保存文件时出错...")
    4e57c65ef8ff9927400ff6222cafb320.png

    好了,到此就把一个复杂的表格转换完成了,新的表格将会是一个标准的考勤记录表,然后就可以放在专门编写的考勤软件中进行查看了。

    来运行一下软件看看最终的结果,执行完成后打开D盘根目录下的“刷卡记录.xlsx”文件会发现里面多了一个sheet1,就是转换完成后的数据。

    9fdbb197cd712b6b38471542befacede.png
    f81a9dd13fd0f5f4539b7b1ea814f021.png

    总结:对于一些复杂格式的数据Excel无能为力处理时,就需要借助一些简单的编程工具来处理了,可以实现数据的快速处理

    有好的想法可以加关注交流,如需要编译好的程序可以加关注后发送。

    展开全文
  • 日历考勤记录

    千次阅读 2017-08-24 20:48:27
    一个简单的日历考勤记录 项目中需要一个日历考勤功能,可以对员工的考勤,以一个直观的日历形式展示出来,比如绿色代表正常,黄色代表迟到,等。 下面的代码就是对此功能的一个简单实现,当然啦,代码还不完善,...

    一个简单的日历考勤记录

    项目中需要一个日历考勤功能,可以对员工的考勤,以一个直观的日历形式展示出来,比如绿色代表正常,黄色代表迟到,等。

    下面的代码就是对此功能的一个简单实现,当然啦,代码还不完善,不过已经做到一个大致的展示,需要的小伙伴们可以根据自己的需求做相应的改动。

    <!DOCTYPE HTML>
    <html lang="zh_CN">
    <head>
      <meta charset="utf-8"/>
      <title></title>
      <style type="text/css">
      table {
          border-collapse: separate;
          border-width: 0px 0px 1px 1px;
          margin: 10px auto;
          font-size: 20px;
      }
      td, th {
          width: 81px;
          height: 45px;
          text-align: center;
          vertical-align: middle;
          color: #5d6b7a;
          position: relative;
          font-size: 16px;
      }
    
      .thead th{
          height: 50px;
          font-weight: bold;
          font-size: 14px;
      }
      td {
          position: relative;
      }
    
    
    </style>
    </head>
    <body>
      <table cellspacing="0">
        <thead>
            <tr class="thead">
                <th>日</th>
                <th>一</th>
                <th>二</th>
                <th>三</th>
                <th>四</th>
                <th>五</th>
                <th>六</th>
            </tr>
        </thead>
        <tbody id="tbody"></tbody>
    </table>
    <script type="text/javascript">
      window.onload = function(){
        var today = new Date();
        today.setDate(1);
        // 获取每个月的第一天是星期几,这样决定日历在开始的位置
        var week = today.getDay();
        //获取当前月最后一天时间
        var last=new Date(today.getFullYear(), today.getMonth()+1, 0);
        // 获取最后一天是几号
        var lastDate=last.getDate();
        // 1号的位置还有多少天,+1是因为求出的星期几时起始位置
        var firstNum=Number(7-week);
        var lastDateToWeek = last.getDay();
    
        //获取当前月一共有几周
        var weekNum=getMonthWeek(lastDateToWeek, lastDate, week);
        for(var i=0;i<weekNum;i++){
          var dateList='';
          var trList='';
          // 第一个星期和最后一个星期分开处理
          // 第一个星期
          if(i<1){
            trList = firstWeek(week, firstNum, dateList, trList);
          } else if (i<(weekNum-1)) {
            trList = usualWeek(i, firstNum, dateList);
          }else {
            // 最后一个星期
            trList = lastWeek(i, firstNum, lastDate, dateList);
          }
          document.getElementById('tbody').innerHTML=document.getElementById('tbody').innerHTML + trList;
        }
        dateSign();
      }
      // 日期标记(可以做考勤日历,标记早退,迟到,旷工,等)
      function dateSign () {
        var oDiv = document.createElement("div");
        oDiv.style.width = '4px';
        oDiv.style.height = '4px';
        oDiv.style.background = '#44B70E';
        oDiv.style.borderRadius = '50%'
        oDiv.style.position = 'absolute';
        oDiv.style.top = '30%';
        oDiv.style.right = '35%';
        var oTd = document.getElementsByClassName('td-col')
        for (var j = 0; j < oTd.length; j++) {
          oTd[j].appendChild(oDiv.cloneNode(true));
        }
      }
      // 获取当前月一共有几周的函数
      function getMonthWeek (lastDateToWeek, lastDate, week) {
    
       return Math.ceil((lastDate + 6 - lastDateToWeek - week) / 7);
      }
    
      // 获取第一周的排列位置
      function firstWeek (week, firstNum, dateList, trList) {
        for(let k=0;k<firstNum;k++){
          dateList+='<td class="td-col">'+(k+1)+'</td>';
        }
        if (week === 0) {
          trList='<tr>'+dateList+'</td>';
        } else {
          trList='<td colspan="'+(week)+'">'+dateList+'</td>';
        }
        return trList;
      }
      // 正常周排列位置
      function usualWeek (i, firstNum, dateList) {
        for(let k=firstNum+7*(i-1);k<firstNum+7*i;k++) {
          dateList+='<td>'+(k+1)+'</td>';
        }
        return '<tr>'+dateList+'</td>';
      }
      // 最后一周日期排列位置
      function lastWeek (i, firstNum, lastDate, dateList) {
        for(let k = firstNum+7*(i-1); k<lastDate;k++) {
          dateList+='<td>'+(k+1)+'</td>';
        }
        return '<tr>'+dateList+'</td>';
      }
    </script>
    </body>
    </html>
    

    目前实现的结果,如图:

    后期我会进一步对其进行封装,小伙伴们可以根据自己的需求做相应的改变。

    展开全文
  • 中控考勤管理软件

    2019-02-18 17:08:36
    数据管理:对设备中的数据进行管理,如删除考勤记录、删除全部数据、清除管理权限、清除宣传图片及设备数据备份和还原等。 U盘管理:通过U盘将设备内的用户信息和考勤数据等导入到相配套的软件中处理或将用户信息...
  • 【日志信息维护】:员工可以通过该模块记录每天的工作情况。 【通告信息维护】:管理员或其它操作员可以通告该模块输入通告信息 【员工信息维护】:管理员可以通告该模块对员工信息进行添加、删除和修改
  • 中控考勤系统中没有直接将员工的原始考勤记录按部门和员工名称列出报表显示的功能。为此我对中控考勤系统的数据库进行了仔细研究部,用ASP程序设计出一个查询员工原始考勤记录的程序,本程序自动生成上个月的每天的...
  • 考勤系统软件

    2008-04-13 22:19:10
    此系统用于对员工进行考勤,是记录员工的电脑当天第一次的开机时间,从而考勤员工.
  • 员工考勤管理系统

    千次阅读 2021-05-11 21:39:46
    这里写自定义目录标题1、需求分析1.1系统概述、产品说明1.2功能需求分析1.3开发使用工具1.4开发原则1.5开发目标1.6项目进度2、概要设计、...管理员对员工和部门进行管理(对员工增删改查、对部门的增删改查)、设定上
  • 本项目是一套基于SSM的企业员工考勤管理系统,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本、软件工具、项目说明等,该项目可以直接作为毕设使用。 项目...
  • 在互联网时代,考勤系统软件的应用还是比较广泛的,有不少公司专业开发考勤系统软件,那么,考勤系统软件有哪些你知道吗?...考勤软件记录员工考勤数据,并生成相关报表的软件。现在的考勤软件已经...
  • 公司正在使用的员工考勤系统,对打卡机生成的原始数据进行了一系列复杂的处理后生成标准模板。该软件导入Tomcat及能运行。使用了Struts2,框架。对Excel的时间函数进行处理。虽然资源分高了点,但绝对超值,设计公司...
  • 亿华B/S考勤系统,是国内最专业的考勤管理软件,基于多年考勤行业研发及实施经验,能够解决企业复杂的考勤事务,比如跨夜班次,四班三运转,生产排班,调休,年假,自动消假,自动从考勤机读取考勤记录,异地考勤,...
  • AttendanceRecord 考勤软件 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown...
  • 设计和开发一个企业员工考勤管理系统,企业员工和管理员只需登录系统就能实现网上考勤。建立一个能够初步实现企业考勤管理系统的智能化管理,提高考勤管理效率,企业员工能够在各个岗位上的工作状态得到及时的反馈,...
  • 在不少的中小企业里,并没有太过于完善的考勤设备,更多的可能是由人工来统计考勤,这样难免会产生误差,事关员工们的切身利益,让我来为大家推荐一款智能人脸识别门禁考勤机,让考勤更加规范,让员工的利益真正落到...
  • 基于B/S架构开发,可以记录公司员工考勤数据,考勤软件可以自动记录并上传考勤信息,保障了考勤数据的安全性,让考勤管理更加系统化、便捷化。欢迎有需要的朋友前来绿色先锋网下载体验! 链接:...
  • 科密331au考勤软件是专为331au考勤机打造的考勤管理软件,其中还包括考勤机驱动程序,有了它以后,用户就可以轻松的查看每位员工考勤记录和迟到早退等情况了,欢迎有需要的朋友下载使用!科密331au考勤机参数简介...
  • 目前很多工厂、企业、机关单位、公司、酒店、餐厅、学校、医院、超市等行业都已经安装使用了指纹考勤机、指纹打卡机、以及人脸识别考勤机。指纹考勤机和人脸识别考勤机的使用,规范了公司考勤管理制度,提升了公司...
  • 常白班员 工 考 勤 表部门:年月序号星期出勤记录实际出勤日期日一二三四五六日一二三四五六日一二三四五六日一二三四五六日一二姓名上下午123456789101112131415161718192021
  • 设计和开发一个企业员工考勤管理系统,企业员工和管理员只需登录系统就能实现网上考勤。建立一个能够初步实现企业考勤管理系统的智能化管理,提高考勤管理效率,企业员工能够在各个岗位上的工作状态得到及时的反馈,...
  • 考勤打卡是上班族开始和结束一天工作的标志,也记录了自己的工作时间,与工作情况、薪资结算等息息相关,随着时间的推移和科学技术的发展,相信大家都经历过纸质打卡、指纹机打卡、人脸识别打卡, 手机软件打卡等,...
  • 员工考勤管理系统源码java 自托管 学习和课程 - Chamilo LMS 允许您创建一个虚拟校园,以提供在线或半在线培训。 () GPLv3 PHP - Open edX 平台是开源代码,支持 . () AGPLv3 Python - 符合开源 ExperienceAPI 的...
  • 虽然这是个小程序,但是呢还是用到了许多的知识点的.主要是""使用集合组织相关数据."",这个知识点非常重要. 在以后搞大型的项目,绝对离不开"集合组织数据"....下面呢就是一个"员工信息管理"小程序.用来强化知识点. ...
  • ##外贸验厂员工考勤和工资这样做才合理 经过几个月的疫情鏖战,中国国内民营经济正逐步复苏,情况慢慢好转,形势一片大好。继二季度中国商品出口实现增长后,今年三季度中国商品出口增速再度扩大了!按照海关总署...
  • 考勤管理软件是企业管理中非常重要...作为公司主管考勤的人员能够通过添美免费考勤管理软件清楚的看到公司员工编号,姓名,部门以及加班、出差以及是否迟到、请假、旷到等诸多信息。还能够通过所有员工的出勤记录比...
  • 中控考勤软件 v5.0绿色版

    千次阅读 2013-12-14 10:16:08
    非常方便实用,一到月底就可以将考勤记录直接导出excel表。 软件的快速使用  1、将在设备上登记好的用户的指纹或卡下载到软件中(连接设备-从设备下载人员数据)  2、在员工维护中将员工的姓名和其他...
  • 员工考勤管理系统源码java GitHub 星星 只是我的 github 星列表,以便于搜索。 回购网址 描述 编程语言 日期 基于实验混合器的快速迭代可视化系统 JavaScript 2020 年 4 月 12 日 :ringed_planet: (ringed_planet) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,441
精华内容 976
关键字:

员工考勤记录软件