zoukankan      html  css  js  c++  java
  • excel的读写封装,利用openpyxl

    import os
    from openpyxl import load_workbook

    from scripts.handle_path import DATA_PATH

    class Testcase:
    pass


    class HandleExcel:
    def __init__(self, filename, sheetname=None):
    self.filename = os.path.join(DATA_PATH, filename)
    self.sheetname = sheetname

    def read_data(self):
    """
    读数据
    :return:
    """
    wb = load_workbook(self.filename)
    if self.sheetname is None:
    ws = wb.active
    else:
    ws = wb[self.sheetname]

    testcases_list = []
    headers_list = [] #存放表头信息
    for row in range(1,ws.max_row + 1):
    one_testcase = Testcase() #创建用例对象
    for column in range(1,ws.max_column+1):
    one_cell_value = ws.cell(row,column).value
    if row == 1:
    # 将获取的表头,转化为字符串并添加至headers_list中
    headers_list.append(str(one_cell_value))
    else:
    #获取表头字符串数据
    key = headers_list[column-1]
    if key == "actual":
    # 设置存放实际响应报文所在列的列号actual_column属性
    setattr(one_testcase,"actual_column",column)
    elif key == "result":
    # 设置存放用例执行结果所在列的列号result_column属性
    setattr(one_testcase, "result_column", column)

    setattr(one_testcase, key, one_cell_value)

    if row != 1:
    # 设置当前用例所在的行号row属性
    setattr(one_testcase,"row",row)
    testcases_list.append(one_testcase)

    return testcases_list

    def write_data(self,one_testcase,actual_value,result_value):
    wb = load_workbook(self.filename)
    if self.sheetname is None:
    ws = wb.active
    else:
    ws = wb[self.sheetname]

    #写入
    ws.cell(one_testcase.row,one_testcase.actual_cloumn,value=actual_value)
    ws.cell(one_testcase.row, one_testcase.result_column, value=result_value)
    wb.save(self.filename)
  • 相关阅读:
    CURD演示 2
    CURD演示 2
    测试关闭mojo utf-8
    测试关闭mojo utf-8
    mojo 关闭utf8
    mojo 关闭utf8
    标准Web系统的架构分层
    Myeclipse学习总结(6)——MyEclipse断点调试
    RabbitMQ学习总结(7)——Spring整合RabbitMQ实例
    RabbitMQ学习总结(7)——Spring整合RabbitMQ实例
  • 原文地址:https://www.cnblogs.com/billyb/p/12933822.html
Copyright © 2011-2022 走看看