import  xlsxwriter,xlrd

'''
思路:
1.获取数据
2.整合数据
3.写入文件
'''
#筛选
def filt(category,table,filt_name=None,res=0):
ncol = table.ncols
for i in range(0,ncol):
col_value=set(table.col_values(i))
if category == table.col_values(i)[0]:
for j in table.col_values(i):
if filt_name == j:
res= res+1
break return res,col_value #写数据 i代表插入表格的起始位置
def write_data(category,i=1):
data_cate = list(filt(category,table1)[1])
data_cate.pop(data_cate.index(category))
data_child=[]
for cate_name in data_cate:
data_child.append(cate_name)
data_child.append(filt(category,table1,cate_name)[0])
i=i+1
worksheet.write_row("A{}".format(i),data_child)
data_child=[] #打开数据所在excel
data = xlrd.open_workbook("bug_list.xlsx")
table1 = data.sheets()[0] #填写表头
workbook = xlsxwriter.Workbook("report.xlsx")
worksheet = workbook.add_worksheet("测试报告")
heads1=["项目名称","bug数量"]
heads2=["开发","bug数量"]
heads3=["bug状态","bug数量"]
worksheet.write_row("A1",heads1)
worksheet.write_row("A10",heads2)
worksheet.write_row("A17",heads3) #填写具体数据
write_data("项目名称")
write_data("开发",10)
write_data("bug状态",17) #柱状图
chart1 = workbook.add_chart({"type":"column"})
chart1.add_series({
"name":"=测试报告!$B$1",
"categories":"=测试报告!$A$2:$A$4",
"values":"=测试报告!$B$2:$B$4"
}) chart1.set_title({"name":"柱状图"})
chart1.set_x_axis({"name":"项目名称"})
chart1.set_y_axis({"name":"bug数量"})
chart1.set_style(13)
worksheet.insert_chart("D5",chart1) #饼图
chart2= workbook.add_chart({"type":"pie"})
chart2.add_series({
"categories":"=测试报告!$A$11:$A$14",
"values":"=测试报告!$B$11:$B$14",
"points":[
{"fill":{"color":"red"}},
{"fill":{"color":"yellow"}},
{"fill":{"color":"blue"}},
{"fill":{"color":"green"}},
]
})
chart2.set_title({"name":"饼状图"})
chart2.set_style(10)
worksheet.insert_chart("D23",chart2)
workbook.close()

  


结果如图所示:

												

基于python xlsxwriter、xlrd 生成测试报告的更多相关文章

  1. Selenium2+python自动化54-unittest生成测试报告(HTMLTestRunner)

    前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLT ...

  2. Python自动化 unittest生成测试报告(HTMLTestRunner)03

    批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTest ...

  3. python + pytest + allure生成测试报告

    pytest结合allure生成测试报告 环境搭建 要安装java环境,版本要是jdk1.8的,配置好java环境变量,不然输入allure命令会报错,JAVA_HOME环境,自行配置 安装allur ...

  4. python xlsxwriter库生成图表的应用

    xlsxwriter可能用过的人并不是很多,不过使用后就会感觉,他的功能让你叹服,除了可以按要求生成你所需要的excel外 还可以加上很形象的各种图,比如柱状图.饼图.折线图等. 请看本人生成的: 这 ...

  5. Selenium2+python自动化54-unittest生成测试报告(HTMLTestRunner)【转载】

    前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLT ...

  6. Python自动化测试框架——生成测试报告

    如何才能让用例自动运行完之后,生成一张直观可看易懂的测试报告呢? 小编使用的是unittest的一个扩展HTMLTestRunner 环境准备 使用之前,我们需要下载HTMLTestRunner.py ...

  7. Selenium3+python自动化011-unittest生成测试报告(HTMLTestRunner)

    批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTest ...

  8. Python+selenium自动化生成测试报告

    批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTest ...

  9. 通过python xlsxwriter模块生成EXCEL柱状图、饼图

    xlsxwriter模块不是python自带的,使用pip下载 import xlsxwriter #新建一个excel文件,起名为expense01.xlsx workbook = xlsxwrit ...

随机推荐

  1. 登陆模块,这个是很重要的模块,有shiro和spring security专门的权限认证框架

    登陆模块,这个是很重要的模块,有shiro和spring security专门的权限认证框架

  2. ArcGIS 10 Engine DevelopKit 之安装与帮助;VBA,跨平台CPP,JAVA,ArcGIS Engine DevelopKit 10 的帮助如何打开

    你看到的这个文章来自于http://www.cnblogs.com/ayanmw ArcGIS Engine Developer Kit10 可以从VeryCD上下载到.其不需要破解,只需要你有一个已 ...

  3. 【CV论文阅读】Dynamic image networks for action recognition

    论文的重点在于后面approximation部分. 在<Rank Pooling>的论文中提到,可以通过训练RankSVM获得参数向量d,来作为视频帧序列的representation.而 ...

  4. 解决MyEclipse中导入项目@Override错误

    做项目的时候,同事那边电脑上编译通过的java代码,或者是网上下载的例子代码,导入project后却是编译不通过,总是@override报错,把@override去掉就好了,有时候@Override出 ...

  5. 我所不知的 javascript Object 的一些现象

    1.我们都知道对象访问属性有两种方法,一种是使用 . 操作符,使用它添加的属性名必须满足标识符的命名规范:另一种是使用 [] 键访问的方法,可以接受任意UTF-8/Unicode字符串作为属性名,在E ...

  6. MyEclipse中加入web项目到tomcat

    假设导入不是在MyEclipse下建立的web项目,想加入到tomcat中时,会显示"No projects are available for deployment to this ser ...

  7. TTS-零基础入门-10分钟教你做一个语音功能

    在本片博客正式開始之前,大家先跟我做一个简单的好玩的 小语音. 新建一个文本文档,然后再文档里输入这样 一句话  CreateObject("SAPI.SpVoice").Spea ...

  8. es bulk 批量删除

    bulk [root@hadoop2 ~]# cat bulk.del.es.json {"delete":{"_index":"direct_vot ...

  9. git的基本操作流程

    1.git clone 初始会有默认的master分支,并且master和origin/master自动建立了映射关系 2. git checkout -b local    创建并且切换到local ...

  10. 交换排序(2)——冒泡排序(bubble sort)

    冒泡排序算法的运作如下:(从后往前) 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所 ...