Python 实现30秒统计周报提交情况(内含完整代码)
统计每周销售人员提交周报的情况
规则:当天提交视为正常提交,若晚一天提交则为晚提交,超过一天以上则为未提交,周六日提交计数,未提交不计数
代码部分
import openpyxl
import time
from datetime import datetime,date,timedelta
from openpyxl import load_workbook
from chinese_calendar import is_workday
print("请首先在文件中插入辅助行!!!\n")
file=input('请输入统计日报文件:\n')
wb= openpyxl.load_workbook(file)
sheet=wb.active
#赋初始值
normal=0#正常
delay=0#晚交
lack =0#未交
weekend_count=0
columns=sheet.max_column
rows=sheet.max_row
for row in range(3,rows + 1):#第三行开始读取数据,直到最大行
for k in range(3,columns +1):#第三列开始读取数据,最大列结束
if sheet.cell(2,k).value!=None :
dates=datetime.strptime(str(sheet.cell(2,k).value),"%Y-%m-%d").date()
if is_workday(dates):
if sheet.cell(row,k).value== None:
lack=lack+1
sheet.cell(row,columns+3).value = lack
else :
if datetime.strptime(str(sheet.cell(row,k).value),"%Y-%m-%d").date()==dates:#先判断字符串是否为空,再确认日期转化成字符串形式
normal=normal+1
sheet.cell(row,columns+1).value = normal
elif datetime.strptime(str(sheet.cell(row,k).value),"%Y-%m-%d").date()== dates+timedelta(days=1):
delay=delay+1
sheet.cell(row,columns+2).value = delay
else:
lack=lack+1
sheet.cell(row,columns+3).value = lack
else:
if sheet.cell(row,k).value != None:
weekend_count=weekend_count+1
sheet.cell(row,columns+4).value = weekend_count
#清零
normal=0#正常
delay=0#晚交
lack =0#未交
weekend_count=0
#添加四列标题
sheet.cell(1,columns+1).value ="正常提交"
sheet.cell(1,columns+2).value ="延迟提交"
sheet.cell(1,columns+3).value ="未提交"
sheet.cell(1,columns+4).value ="周末提交"
wb.save(file)
print("统计已完成!")
time.sleep(10)