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

      




    结果如图所示:

    
    
  • 相关阅读:
    二维码生成库phpqrcode使用小结
    微信扫码支付开发小结
    Xcode下开发c静态库for ios CPU架构 静态库合并
    Android.mk的用法和基础
    Android.mk介绍
    查看与修改网关,DNS
    WebRTC编译系统之GYP,gn和ninja
    sed awk文本处理教程
    有哪些自媒体平台?
    camke使用例程
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/7985414.html
Copyright © 2011-2022 走看看