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

 

 

posted @ 2018-06-14 19:32  水如如  阅读(276)  评论(0编辑  收藏  举报