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. 第3章 ES文档和故障处理

    第3章 ES文档和故障处理 一.ES网络配置表 ES网络配置表是ES的硬件和软件组成的列表.ES网络配置常包括以下项目: 分级 项目 杂项信息 系统名.系统厂商/型号.CPU速率.RAM.存储器.系统 ...

  2. Shiro学习(22)集成验证码

    在做用户登录功能时,非常多时候都须要验证码支持,验证码的目的是为了防止机器人模拟真有用户登录而恶意訪问,如暴力破解用户password/恶意评论等. 眼下也有一些验证码比較简单,通过一些OCR工具就能 ...

  3. MySQL 登录问题

    1.问题一:使用update mysql.user set password='root'改动密码后,不能登录 解决:操作过程例如以下. (1)关闭mysql(杀掉mysqld进程),然后使用命令: ...

  4. 基于二叉搜索树的符号表和BST排序

    原代码例如以下: #include <stdlib.h> #include <stdio.h> //#define Key int typedef int Key; struc ...

  5. BestCoder Round #61 (div.2) C.Subtrees dfs

    Subtrees   问题描述 一棵有N个节点的完全二叉树,问有多少种子树所包含的节点数量不同. 输入描述 输入有多组数据,不超过1000组. 每组数据输入一行包含一个整数N.(1\leq N\leq ...

  6. UVA 1476 - Error Curves(三分法)

    UVA 1476 1476 - Error Curves 题目链接 题意:给几条下凹二次函数曲线.然后问[0,1000]全部位置中,每一个位置的值为曲线中最大值的值,问全部位置的最小值是多少 思路:三 ...

  7. luogu1040 加分二叉树

    题目大意 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号.每个节点都有一个分数(均为正整数),记第j个节点的分数为di,tree及它的每个子树都 ...

  8. bootstrap table load数据

    直接load数据: $("#button").click(function(){ var name=$("input[name='name']").val(); ...

  9. MarkMonitor 目前最安全的域名注册商,因此,世界500强网站中的22%域名托管于markmonitor公司

    也许你查询某个大型公司域名whios信息时,常常会发现很多这些大型公司的域名都在一家名为MarkMonitor的公司注册,那么markmonitor是家什么样的公司呢? MarkMonitor是一家从 ...

  10. PCB 所建不凡 AWS 技术峰会2018 • 深圳站 2018.9.20

    在去[AWS 技术峰会2018 • 深圳站]之提前并没有AWS提前做功课,主要PCB这行业基本自己搭服务器搭应用,不会买云服务器.由于没用过企业级的云服务器,对云这方面还是了解还是非常有限的. 市面上 ...