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
    
  • 相关阅读:
    洛谷 P2023 BZOJ 1798 [AHOI2009]维护序列
    洛谷 P1640 BZOJ 1854 [SCOI2010]连续攻击游戏
    洛谷 P4300 BZOJ 1266 [AHOI2006]上学路线route
    洛谷 P1886 滑动窗口
    洛谷 P1063 能量项链
    洛谷 P1156 垃圾陷阱
    洛谷 P1854 花店橱窗布置
    洛谷 P3800 Power收集
    洛谷 P2285 BZOJ 1207 [HNOI2004]打鼹鼠
    day31
  • 原文地址:https://www.cnblogs.com/c-jw/p/14380018.html
Copyright © 2011-2022 走看看