zoukankan      html  css  js  c++  java
  • python读取Excel,且存入列表中

    cases.xlsx:

    import openpyxl
    
    class ReadExcel(object):
        def __init__(self,filename,sheet_name):
            '''
            :param filename: 文件名 str
            :param sheet_name: sheet名 str
            '''
            self.wb = openpyxl.load_workbook(filename)
            self.sh = self.wb[sheet_name]
    
        def read_case_line(self):
            '''
                读取数据,存入列表中
            :return: list
            '''
            # 按行读取数据,转化为列表
            case_rows = list(self.sh.rows)
            print("按行读取数据:",case_rows)
            #  获取表头
            titles = []
            for title in case_rows[0]:
                titles.append(title.value)
            # print("获取表头:",titles)
            # 存贮用例的空列表
            cases = []
            for case in case_rows[1:]:
                # print("查看列表1:",case)
                # 获取第一条测试用例数据
                data = []
                for cell in case:
                    data.append(cell.value)
                    '''
                        判断单元格是否为字符串,
                        如果是,则用eval()
                        否,则不用eval()
                    '''
                    if isinstance(cell.value,str):
                        data.append(eval(cell.value))
                    else:
                        data.append(cell.value)
                    # 将数据存放到cases中
                    # 将该条数据和表头进行打包组合 dict(list(zip(titles,cases))))
                cases_data = dict(list(zip(titles,data)))
                cases.append(cases_data)
            return cases
    
    if __name__ == '__main__':
        r = ReadExcel("D:TestSoftwarePyCharmPyCharmProjectExceldatacases.xlsx","user_login")
        ds = r.read_case_line()
        for d in ds:
            print(d)
    
    
    

    输出:

    D:TestSoftwareAnaconda3python.exe D:/TestSoftware/PyCharm/PyCharmProject/Excel/case/demo2.py
    按行读取数据: [(<Cell 'user_login'.A1>, <Cell 'user_login'.B1>, <Cell 'user_login'.C1>), (<Cell 'user_login'.A2>, <Cell 'user_login'.B2>, <Cell 'user_login'.C2>), (<Cell 'user_login'.A3>, <Cell 'user_login'.B3>, <Cell 'user_login'.C3>), (<Cell 'user_login'.A4>, <Cell 'user_login'.B4>, <Cell 'user_login'.C4>), (<Cell 'user_login'.A5>, <Cell 'user_login'.B5>, <Cell 'user_login'.C5>), (<Cell 'user_login'.A6>, <Cell 'user_login'.B6>, <Cell 'user_login'.C6>), (<Cell 'user_login'.A7>, <Cell 'user_login'.B7>, <Cell 'user_login'.C7>), (<Cell 'user_login'.A8>, <Cell 'user_login'.B8>, <Cell 'user_login'.C8>), (<Cell 'user_login'.A9>, <Cell 'user_login'.B9>, <Cell 'user_login'.C9>)]
    {'id': 1, 'excepted': 1, 'data': '{"code":0,"msg":"用户名已存在"}'}
    {'id': 2, 'excepted': 2, 'data': '{"code":0,"msg":"l两次密码不一致"}'}
    {'id': 3, 'excepted': 3, 'data': '{"code":1,"msg":"注册成功"}'}
    {'id': 4, 'excepted': 4, 'data': '{"code":0,"msg":"账号和密码必须再6-18位之间"}'}
    {'id': 5, 'excepted': 5, 'data': '{"code":0,"msg":"账号和密码必须再6-18位之间"}'}
    {'id': 6, 'excepted': 6, 'data': '{"code":0,"msg":"账号和密码必须再6-18位之间"}'}
    {'id': 7, 'excepted': 7, 'data': '{"code":0,"msg":"账号和密码必须再6-18位之间"}'}
    {'id': 8, 'excepted': 8, 'data': '{"code":0,"msg":"账号和密码必须再6-18位之间"}'}
    
    Process finished with exit code 0
    
  • 相关阅读:
    SVN还原项目到某一版本(转)
    C# Web Service 不使用服务引用直接调用方法(转)
    动态调用webservice时 ServiceDescriptionImporter类在vs2010无法引用的解决方法 (转)
    log4net示例2-日志输入存入Access(转)
    C# log4net 配置及使用详解--日志保存到文件和Access(转)
    未能解析引用的程序集......因为它对不在当前目标框架“.NETFramework,Version=v4.0,Profile=Client”中的 (转)
    Hello log4net——做一个实用好用的log4net的demo(转)
    JS移动客户端--触屏滑动事件
    js生成二维码实例
    触屏版类似刷新页面文本框获取焦点的同时弹出手机键盘的做法
  • 原文地址:https://www.cnblogs.com/c-jw/p/14380018.html
Copyright © 2011-2022 走看看