zoukankan      html  css  js  c++  java
  • 基于python xlsxwriter、xlrd 生成测试报告

    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()
    

      




    结果如图所示:

    
    
  • 相关阅读:
    30张图解: TCP 重传、滑动窗口、流量控制、拥塞控制
    ffmpeg rtp时间戳
    35 张图解:被问千百遍的 TCP 三次握手和四次挥手面试题
    Pinpoint 分布式系统性能监控工具
    图解正向代理、反向代理、透明代理
    实战!我用 Wireshark 让你“看见“ TCP
    IE7的增强插件:IE7Pro
    Net Core 中的HTTP协议详解
    Autofac是一个轻量级的依赖注入的框架
    关于表数据的复制插入TSQL
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/7985414.html
Copyright © 2011-2022 走看看