python基础之类与对象的应用-操作excel

2019-10-07  本文已影响0人  DayBreakL

python操作excel

openpyxl

image
    ```
    from openpyxl import load_workbook
    class DoExcel:
        """
        获取excel单元格的值
        """
        def __init__(self,file_name,sheet_name):
            """
            
            :param file_name: excel文件名
            :param sheet_name: sheet名
            """
            self.file_name=file_name
            self.sheet_name=sheet_name
    
        def get_excel(self,i,j):
            """
            
            :param i: 第几行
            :param j: 第几列
            :return: 返回对应单元格的值
            """
            wb=load_workbook(self.file_name)
            sheet=wb[self.sheet_name]
            return sheet.cell(i,j).value
        
         def get_max_row(self):
            """
            :return: sheet的最大行数
            """
            return self.sheet_obj.max_row

        def get_max_col(self):
            """
            :return: sheet的最大列数
            """
            return self.sheet_obj.max_column
            
    if __name__ == '__main__': #测试
        do=DoExcel("test.xlsx","test001")
        print(do.get_excel(1,1))
    ```

ddt

DDT与excel结合使用

总结unittest+excel

配置文件

用例的可配置

有时,我们需要run不同程度的case、不同模块的case,所以需要case的一个可配置性

image
from openpyxl import load_workbook
class GetExcel:
    def __init__(self,file_name,sheet_name):
        self.file_name=file_name
        self.sheet_name=sheet_name

    def get_data(self,button="all"):
        """
        约定参数button,默认值为all。
        如果button值为“all”,则表示运行所有的case;
        如果button的值为一个case_id的列表,按照列表里的case_id进行运行。
        """
        wb=load_workbook(self.file_name)
        sheet=wb[self.sheet_name]
        test_data=[] #每条数据要存在列表里
        for i in range(2, sheet.max_row+1): #第一行是title,所以从第二行开始
            sub_data={}
            sub_data["case_id"] = sheet.cell(i, 1).value
            sub_data["mouble"] = sheet.cell(i, 2).value
            sub_data["age"]=sheet.cell(i,3).value
            sub_data["score"]=sheet.cell(i,4).value
            sub_data["percent"]=sheet.cell(i,5).value
            sub_data["local"]=sheet.cell(i,6).value
            test_data.append(sub_data)
        #对传入的button值进行判断
        if button == "all":
            finally_data=test_data
        else: #[1,2,3,4]
            finally_data=[]
            for item in test_data:
                if item["case_id"] in button:
                    finally_data.append(item)
        return finally_data

if __name__ == '__main__':
    ex=GetExcel("testdata.xlsx","Sheet1")
    print("测试数据:",ex.get_data()) #所有数据
    print("测试数据:", ex.get_data([1,3])) #第一条、第三条测试数据
配置文件

平常工作中可能会常见到.properties .config .ini .log4j(.log4j是java中的配置文件,python不用)结尾的文件,这些都是配置文件。python中有configparser模块可以去读取配置信息

上一篇 下一篇

猜你喜欢

热点阅读