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)
  • 相关阅读:
    打印杨辉三角
    插值排序
    各种冒泡排序法
    Linux系统命令符01
    2.1博客系统 |基于form组件和Ajax实现注册登录
    python面试笔试题,你都会了吗?快来复习
    1.2博客系统 |登录页| 验证码
    1.1博客系统| 表结构
    第五章:5.2面向对象-绑定方法和非绑定方法| 内置方法 |元类
    11.Django|中间件
  • 原文地址:https://www.cnblogs.com/billyb/p/12933822.html
Copyright © 2011-2022 走看看