要求统计出业绩表中每个人累加业绩。大于等于1000表示达标,需要统计出开始达标的月份和业绩。
import xlrd #导入读取模块from xlutils.copy import copy #导入copy模块wb=xlrd.open_workbook('业绩表.xls') #打开工作簿ws=wb.sheet_by_name('Sheet1') #打开工作表nwb=copy(wb) #复制工作簿nws=nwb.get_sheet('统计结果') #复制工作表subtotal=0 #初始化总计for r in range(1,ws.nrows): #遍历到行末for c in range(1,13): #遍历到列末subtotal+=ws.cell_value(r,c) #累加值if subtotal>=1000: #判断是否达到1000nws.write(r,0,ws.cell_value(r,0)) #写nws.write(r,1,'%d月'%c) #表nws.write(r,2,subtotal) #格break #跳出循环subtotal=0 #重置总计nwb.save('业绩表.xls') #保存工作簿
问题:如果是不超过1000怎么办?
import xlrdfrom xlutils.copy import copywb=xlrd.open_workbook('业绩表.xls')ws=wb.sheet_by_name('Sheet1')nwb=copy(wb)nws=nwb.get_sheet('统计结果')r,c=0,0sub=0for r in range(1,ws.nrows):for c in range(1,ws.ncols):sub=sub+ws.cell_value(r,c)if sub>=1000:nws.write(r,0,ws.cell_value(r,0))nws.write(r, 1, '%d月'%c)nws.write(r,2,sub)breakelse: #包含不超过1000的人nws.write(r, 0, ws.cell_value(r, 0))nws.write(r, 1, '%d月' % c)nws.write(r, 2, sub)sub=0nwb.save('业绩表.xls')
