“学以致用 makes me happy!”
import xlrd,xlwt
from xlutils.copy import copy
zhui=input("\n请输入后缀日期【例:0314】:")
修机='工单查询修机单列表'+zhui
装机='工单查询装机单列表'+zhui
反馈='【输出】【'+zhui+'——数字统计】.xls'
print("\n提示输入文件:")
print(" ·"+修机+'.xls')
print(" ·"+装机+'.xls')
print(" ·【勿删】数字统计(原表).xls")
# 获取工作簿对象
x_wb=xlrd.open_workbook(修机+'.xls') # 获取(查询)工作簿对象
z_wb=xlrd.open_workbook(装机+'.xls') # 获取(查询)工作簿对象
wb_TongJi=xlrd.open_workbook('【勿删】数字统计(原表).xls') # 获取(报表)工作簿对象
# 获取原始列值
x_ws=x_wb.sheet_by_name(修机) # 获取工作表对象
z_ws=z_wb.sheet_by_name(装机) # 获取工作表对象
col_1=x_ws.col_values(4) # 名称
col_2=z_ws.col_values(4) # 标识1
col_3=z_ws.col_values(5) # 名称
col_4=z_ws.col_values(31) # 标识2
# 复制工作簿、新建工作表
nwb=copy(wb_TongJi)
nws_1=nwb.get_sheet('数字统计')
# 获取原始行序
xu=[]
for i in range(len(col_2)):
xu.append(i)
# 筛选“装、移、是”列表索引
z_xu=[]
k1=0
for item_z in col_2:
if (item_z=="装"):
z_xu.append(xu[k1])
k1=k1+1
y_xu=[]
k2=0
for item_y in col_2:
if(item_y=="移"):
y_xu.append(xu[k2])
k2=k2+1
s_xu=[]
k3=0
for item_s in col_4:
if (item_s=="是"):
s_xu.append(xu[k3])
k3=k3+1
# 筛选“装、移、是、修”名称列表
z_name=[]
for zn in z_xu:
z_name.append(col_3[xu[zn]])
y_name=[]
for yn in y_xu:
y_name.append(col_3[xu[yn]])
s_name=[]
for sn in s_xu:
s_name.append(col_3[xu[sn]])
x_name=[]
for item_x in col_1:
if (item_x!='处理人'):
x_name.append(item_x)
# 统计“装、移、是、修”名称列表里每人出现的次数,并生成对应的序列
people=['汪AA','商BB','张C','范D','李F','于GG','梁HH','丁I','赵J','李KK','许LL','季M','鄂NN','王OO','田PP','董Q']
z_sum=[]
for z_man in people:
z_sum.append(z_name.count(z_man))
y_sum=[]
for y_man in people:
y_sum.append(y_name.count(y_man))
s_sum=[]
for s_man in people:
s_sum.append(s_name.count(s_man))
x_sum=[]
for x_man in people:
x_sum.append(x_name.count(x_man))
# 将“装、移、是、修”的处理结果写入对应的单元格
for rs_1 in range(1,17):
nws_1.write(rs_1,1,z_sum[rs_1-1])
for rs_2 in range(1,17):
nws_1.write(rs_2,2,y_sum[rs_2-1])
for rs_3 in range(1,17):
nws_1.write(rs_3,5,s_sum[rs_3-1])
for rs_4 in range(1,17):
nws_1.write(rs_4,3,x_sum[rs_4-1])
nwb.save(反馈)
print('\n\n\n恭喜!程序执行完毕!\n\n')
print("\n提示输出文件:")
print(" ·"+反馈+'\n\n\n\n')
结果查看:
参考资料:
- 以往的代码