zoukankan      html  css  js  c++  java
  • python接口测试之如何操作excel

    1. 安装模块
    2. 导入模块
    3. 打开excel文件,获取数据
    4. 获取数据表的数据(某一个具体的sheet)
    5. 获取表名称
    6. 获取行,列数量
    7. 获取行,列的值
    8. 获取单元格的值
    9. 综合示例

    1、安装模块

    pip install xlrd
    

    2、导入模块

    import xlrd
    

    3、打开excel文件

    data=xlrd.open_workbook(self.file_name)
    

    4、获取数据表的数据

    tables=data.sheets()[self.sheet_id]
    

    5、获取表名称

    name=table.name
    

    6、获取行、列数量

    nrows = table.nrows
    nclos = table.ncols
    

    7、获取某行、列的值

    row_value=tables.row_value(i)
    col_value=tables.col_value(i)
    

    8、获取单元格的值

    cellvalue = table.cell(row,col).value
    cellvalue = table.cell_value(row,col)
    

    9、综合示例

    import xlrd
    from xlutils.copy import copy
    class OperateExcel:
        def __init__(self,sheet_id=None,file_name=None):
            if file_name:
                self.file_name=file_name
                self.sheet_id=sheet_id
                # self.tables=self.get_data()
            else:
                self.file_name='../dataconfig/case1.xls'
                self.sheet_id=0
            self.data=self.get_data()
        #获取表格数据(sheet的内容)
        def get_data(self):
            data=xlrd.open_workbook(self.file_name)
            tables=data.sheets()[self.sheet_id]
            return tables
        #获取行数
        def get_lines(self):
            lines=self.get_data().nrows
            return lines
        #获取某一个单元格内容
        def get_cellValue(self,row,col):
            value=self.get_data().cell(row,col).value
            return value
    
    
        #写入数据
        def write_value(self,row,col,value):
            ori_data=xlrd.open_workbook(self.file_name)
            copy_data=copy(ori_data)
            sheet_data=copy_data.sheets()[0]
            sheet_data.write(row,col,value)
            copy_data.save(self.file_name)
         #根据对应的case_id找到对应行的内容(需要先找到行号)
        def get_row_data(self,case_id):
            row_num=self.get_row_data(case_id)
            row_data=self.data.row_values(row_num)
            return row_data
        #根据对应的case_id找到对应的行号
        def get_row_num(self,case_id):
            num=0
            col_value=self.get_col_data()
            for item in col_value:
                if case_id in item:
                    return num
                num+=1
    
    
        def get_col_data(self,col_id=None):
            if col_id != None:
                cols = self.data.col_values(col_id)
            else:
                cols = self.data.col_values(0)
            return cols
    
    if __name__=="__main__":
        opers=OperateExcel()
        print(opers.get_data())
        print(opers.get_lines())
        print(opers.get_cellValue(1,3))
        print(opers.get_col_data(2))
        print(opers.get_row_num(2))
    

    10、总结

    综合示例中的copy是为了实现可以在表格中写入数据,xlrd没有读的功能,xlwt有,但是会覆盖之前的原文件,所有可以先copy,再实现副本中实现写入数据

     

  • 相关阅读:
    太精辟了!从学校到职场的十条经典语录!
    平庸领导下跳棋,伟大领导下象棋(转)
    新官上任前的十一大基本功
    病母私自出房有感
    你为何还会出现在我梦里
    创业辛酸
    Goldengate can't extract data from compressed table
    配置GoldenGate同步DDL语句(3)
    Goldengate各build与Oracle数据库版本间的兼容性
    11g新特性:Note raised when explain plan for create index
  • 原文地址:https://www.cnblogs.com/mesunyueru/p/9184643.html
Copyright © 2011-2022 走看看