python--EXL表格--简单处理

EXl表格简单处理

环境:pycharm + xlrd+xlwt + datetime

说明:最近公司搬迁用了门禁作为考勤,而要求每天都要做员工考勤数据下发。而每次进出都会有考勤数据记录,导致大量重复数据需要处理,,这个工作耗时大量重复还必须做。而门禁系统或者中控考勤软件达不到自己的考勤表格要求。只有自己想办法。。

代码:

#导入包、模块
#读取
import xlrd
#写入
import xlwt
#格式化日期
from datetime import datetime

attence,d=[],[]
def dateTime():
    #打开路径表格
    workbook = xlrd.open_workbook(r'C:\Users\lengyazhou\Desktop\1.xls')
    #获取索引为0(第一个表格)的表格
    rdsheet = workbook.sheet_by_index(0)
    #打印表格行数、列数
    print(rdsheet.nrows,rdsheet.ncols)
    #获取每行的值
    for i in range(rdsheet.nrows):
        #姓名(第i行,第2列的值)
        name=rdsheet.cell(i,2).value
        #编号
        Num=rdsheet.cell(i,3).value
        #打卡时间
        dktime =rdsheet.cell(i,4).value
        #格式化日期(2019-06-04 10:55:33形式的日期)
        if i!=0:
            dates=xlrd.xldate_as_tuple(dktime,0)
            #日期
            date=datetime(*dates).strftime('%Y/%m/%d')
            #时间
            time=datetime(*dates).strftime('%H:%M')
        else:
            date = "日期"
            time = "时间"
        #组合显示数据列表
        lis=[Num,name,date,time]
        attence.append(lis)

#筛选数据
def data():
    for k,j in enumerate(attence):
        if k<2 :
            d.append(j)
        else :
            #判断或筛选同一天数据
            if j[1]!=attence[k-1][1] :
                d.append(attence[k-1])
                d.append(j)
            else:
                    del j
    #最后一个数据
    d.append(attence[-1])

#写入新表格
def wtExl():
    #获取表格对象
    wtbook=xlwt.Workbook()
    #增加表格名称为att,可以修改写入
    wtsheet=wtbook.add_sheet("att",cell_overwrite_ok=True)
    #遍历写入数据
    for l in range(len(d)):
        if 0<l<len(d)-1:
            if l%2==1:
                #遍历表格行数
                for m in range(len(d)):
                    #遍历表格列数
                    for n in range(len(d[0])):
                        #写入m行 ,n列 ,数据为d[][]的值
                            wtsheet.write(m,n,d[m][n])
    #保存路径文件名
    wtbook.save("F:\\att\\att1.xls")
#运行
dateTime()
data()
wtExl()

处理前部分表格(日期时间不分开,且重复无用数据):

处理后部分表格(日期,时间分开,保留第一次,最后一次记录):

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值