redmine中使用python按人员分组统计问题入excel的自编写案例
2017-02-09 15:09
561 查看
import xlrd
from xlutils.copy import copy
class ByUserStatistics(object):
#按人员分组统计入excel
def __ByUserStati__(self,reportfilepath,db):
cursor=db.cursor()
sql='''
select DISTINCT(CONCAT(u.lastname,u.firstname)),t.name from issues iss
LEFT JOIN users u on u.id=iss.assigned_to_id
LEFT JOIN trackers t on t.id=iss.tracker_id
GROUP BY u.login,t.name,iss.status_id;
'''
cursor.execute(sql)
data_list=cursor.fetchall()
bk=xlrd.open_workbook(reportfilepath)
wb=copy(bk)
wa=wb.get_sheet(1)
for i in range(0,len(data_list)):
wa.write(i+1,0,data_list[i][0])
wa.write(i+1,1,data_list[i][1])
wb.save(reportfilepath)
#按人员分组统计问题入excel
def __ByUserIssuesStati__(self,reportfilepath,db):
cursor=db.cursor()
sql='''
select CONCAT(u.lastname,u.firstname),t.name,isst.name,count(*) from issues iss
LEFT JOIN users u on u.id=iss.assigned_to_id
LEFT JOIN trackers t on t.id=iss.tracker_id
LEFT JOIN issue_statuses isst on isst.id=iss.status_id
GROUP BY u.login,t.name,iss.status_id;
'''
cursor.execute(sql)
data_list=cursor.fetchall()
bk=xlrd.open_workbook(reportfilepath)
wb=copy(bk)
wa=wb.get_sheet(1)
sh=bk.sheet_by_name(u"按人员问题统计")
nrows=sh.nrows
for i in range(0,len(data_list)):
if data_list[i][2]==u"新建":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,2,data_list[i][3])
elif data_list[i][2]==u"需求设计":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,3,data_list[i][3])
elif data_list[i][2]==u"需求评审":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,4,data_list[i][3])
elif data_list[i][2]==u"已分配":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,5,data_list[i][3])
elif data_list[i][2]==u"已分配(开发任务)":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,6,data_list[i][3])
elif data_list[i][2]==u"已完成(开发任务)":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,7,data_list[i][3])
elif data_list[i][2]==u"已修复":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,8,data_list[i][3])
elif data_list[i][2]==u"提交测试":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,9,data_list[i][3])
elif data_list[i][2]==u"重新打开":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,10,data_list[i][3])
elif data_list[i][2]==u"申请否决":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,11,data_list[i][3])
elif data_list[i][2]==u"已否决":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,12,data_list[i][3])
elif data_list[i][2]==u"已关闭":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,13,data_list[i][3])
else:
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,14,data_list[i][3])
wb.save(reportfilepath)
from xlutils.copy import copy
class ByUserStatistics(object):
#按人员分组统计入excel
def __ByUserStati__(self,reportfilepath,db):
cursor=db.cursor()
sql='''
select DISTINCT(CONCAT(u.lastname,u.firstname)),t.name from issues iss
LEFT JOIN users u on u.id=iss.assigned_to_id
LEFT JOIN trackers t on t.id=iss.tracker_id
GROUP BY u.login,t.name,iss.status_id;
'''
cursor.execute(sql)
data_list=cursor.fetchall()
bk=xlrd.open_workbook(reportfilepath)
wb=copy(bk)
wa=wb.get_sheet(1)
for i in range(0,len(data_list)):
wa.write(i+1,0,data_list[i][0])
wa.write(i+1,1,data_list[i][1])
wb.save(reportfilepath)
#按人员分组统计问题入excel
def __ByUserIssuesStati__(self,reportfilepath,db):
cursor=db.cursor()
sql='''
select CONCAT(u.lastname,u.firstname),t.name,isst.name,count(*) from issues iss
LEFT JOIN users u on u.id=iss.assigned_to_id
LEFT JOIN trackers t on t.id=iss.tracker_id
LEFT JOIN issue_statuses isst on isst.id=iss.status_id
GROUP BY u.login,t.name,iss.status_id;
'''
cursor.execute(sql)
data_list=cursor.fetchall()
bk=xlrd.open_workbook(reportfilepath)
wb=copy(bk)
wa=wb.get_sheet(1)
sh=bk.sheet_by_name(u"按人员问题统计")
nrows=sh.nrows
for i in range(0,len(data_list)):
if data_list[i][2]==u"新建":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,2,data_list[i][3])
elif data_list[i][2]==u"需求设计":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,3,data_list[i][3])
elif data_list[i][2]==u"需求评审":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,4,data_list[i][3])
elif data_list[i][2]==u"已分配":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,5,data_list[i][3])
elif data_list[i][2]==u"已分配(开发任务)":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,6,data_list[i][3])
elif data_list[i][2]==u"已完成(开发任务)":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,7,data_list[i][3])
elif data_list[i][2]==u"已修复":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,8,data_list[i][3])
elif data_list[i][2]==u"提交测试":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,9,data_list[i][3])
elif data_list[i][2]==u"重新打开":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,10,data_list[i][3])
elif data_list[i][2]==u"申请否决":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,11,data_list[i][3])
elif data_list[i][2]==u"已否决":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,12,data_list[i][3])
elif data_list[i][2]==u"已关闭":
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,13,data_list[i][3])
else:
for j in range(1,nrows):
if data_list[i][0]==(sh.row_values(j)[0]or None) and data_list[i][1]==sh.row_values(j)[1]:
wa.write(j,14,data_list[i][3])
wb.save(reportfilepath)
相关文章推荐
- [Oracle SQL] 使用rollup分组统计按统计结果分组排序显示的问题
- 使用python解析excel实现工作效率统计
- 使用python批量导入txt导入excel表格(公司电脑设备ip和人员统计)
- Excel 中使用SQL 语句查询数据(八)-----用Group by 进行分组统计
- Python使用pandas读取Excel文件数据和预处理小案例
- Mysql 解决 分组统计问题
- 使用Python的Command Line操作Excel的Macro
- 分组统计并且累加的问题
- 关于python使用pyrex编译成可执行文件的问题
- 一组关于手持移动设备使用安全问题的统计数据
- Django在使用mod_python+apache中配置VirtualHost的问题总结
- 使用C#和Excel进行报表开发(二)-操作统计图(Chart)
- 使用python写的代码行数统计程序
- sps 2007 小问题1:人员选择器PeopleEditor如何使用
- 在Struts+Spring+ibaits中使用poi进行excel操作时候的问题
- excel数据个数统计问题
- 一组关于手持移动设备使用安全问题的统计数据
- 使用DCOM组件服务操作Excel,权限问题,进程释放问题
- 报表分组统计然后显示数据的时候顺序不正常,即使用order by 也是不可以!见图
- 数据分组--聚合函数使用范例(小计,统计,汇总)实例