: :其他软件 2019-11-15 10:23:44
用法很简单就是在脚本执行路径下放一个.xls 文件,脚本会自动去读,也就是下边变量filename的位置,名字不一样需要修改一下,文件是按姓名,月工作日时间,正常上班时间,异常时间,当然是根据我们公司写的,有其他需要各位自己改吧。
import xlrd
import xlutils.copy
lst = []
#取两位数字且不四舍五入
def get_two_float(f_str, n):
f_str = str(f_str) # f_str = '{}'.format(f_str) 也可以转换为字符串
a, b, c = f_str.partition('.')
c = (c + "0" * n)[:n] # 如论传入的函数有几位小数,在字符串后面都添加n为小数0
return ".".join([a, c])
#工时计算用的
def normal_staff(should, normal, wrong, name):
effective = float(normal) + float(wrong)
if effective == float(should):
lst.append(1)
elif effective < float(should):
small = float(effective) / 22.5
lst.append(get_two_float(small, 2))
elif effective > int(should):
bigger = (effective - float(should)) / 22.5 + 1
lst.append(get_two_float(bigger, 2))
#excel操作
def read_excel(filename):
wb = xlrd.open_workbook(filename) # 打开表格
sheet_name = wb.sheets()[0] # 选择sheet
return sheet_name
#统计excel行数
def excel_num(filename):
num = read_excel(filename)
row = num.nrows # 统计行数
return row
#修改excel文件内容
def excel_append(filename):
data = xlrd.open_workbook(filename)
sheet = data.sheets()[0]
ws = xlutils.copy.copy(data)
table = ws.get_sheet(0)
i = 0
for a in lst:
table.write(i, 4, a)
i += 1
ws.save('abc.xls')
if __name__ == '__main__':
filename = 'abc.xls'
re = read_excel(filename)
en = excel_num(filename)
for x in range(en):
name, should, normal, wrong = re.row_values(x)
normal_staff(should, normal, wrong, name)
excel_append(filename)
print('工时统计已完成')
TAG: Python,工时计算脚本,源码
10-12有道翻译源码JS版
10-03易语言源码批量添加注释,替换换行符
09-26python求序列周期
09-20智能风扇.c源码
09-18电子秤源码(stc15w408s)
08-23游戏图色脚本框架源码
08-23取机器码升级版,模块和源码
08-23红叶网络验证易语言对接源码
08-21python库快速安装工具
10-12Python 3.10发布,带来诸多改进
10-10Python代码实现验证码识别功能
10-08Python通过缩进来识别代码
09-17讲解Python常用绘图库的绘图原理
09-11最佳的学习的Python编程开源库