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,再实现副本中实现写入数据

     

  • 相关阅读:
    spring-schedule
    数字电路
    面试题
    CMOS集成门电路
    TTL特殊门电路
    TTL反相器的外部特性
    TTL集成门电路工作原理和电压传输特性
    半导体器件的开关特性和分立元件门电路
    逻辑函数的公式化减法
    php 获取当前文件名称
  • 原文地址:https://www.cnblogs.com/mesunyueru/p/9184643.html
Copyright © 2011-2022 走看看