Python+Unittest接口自动化测试(四)--使用Python操作Excel


一、xlrd模块初体验

1. xlrd的一些基本用法

# coding:utf-8
import xlrd   #导入xlrd库

file = 'G:\ImoocInterface\excel\interface_test.xlsx'   #excel文件地址
data = xlrd.open_workbook(file)   #打开interface_test.xlsx文件

shuliang = data.nsheets   #获取sheet数量
print(shuliang)

sheet_names = data.sheet_names()   #获取sheet名称
print(sheet_names)
print(sheet_names[0])  #获取第一个sheet标签的名字

sheet1 = data.sheet_by_index(0)     #根据sheet索引获取内容
sheet2 = data.sheet_by_name('Sheet2')    #根据sheet名称获取内容
sheet3 = data.sheet_by_name('Sheet4')
print(sheet1)
print(sheet2)
print(sheet3)

#获取该sheet的总行数
rows = sheet1.nrows
print(rows)

#获取该sheet的总列数
cols = sheet1.ncols
print(cols)

row_data_1 = sheet1.row_values(0)   #获取第一行内容
row_data_2 = sheet2.row_values(1)
cor_data_1 = sheet1.col_values(0)   #获取第一列内容
print(row_data_1)
print(row_data_2)
print(cor_data_1)

#从第二行开始,遍历每一行的内容
for t in range(1, rows):
    row_value = sheet1.row_values(t)
    print(row_value)

cell_value1 = sheet1.cell_value(0, 0)   #获取第一行,第一列数据。索引从0开始
cell_value2 = sheet1.cell_value(2, 3)   #获取第二行,第四列数据
print(cell_value1)
print(cell_value2)

附Excel文件截图:

 

运行结果:

二、把操作Excel的模块封装成函数

1. 整理之前写的程序片段,封装成函数

# coding:utf-8
import xlrd   #导入xlrd库

# data = xlrd.open_workbook('G:\ImoocInterface\excel\interface_test.xlsx')
# tables = data.sheets()[0]
# print(tables.nrows)
# print(tables.cell_value(2,3))

class OperationExcel:
    def __init__(self, file_name=None, sheet_id=None):
        if file_name:
            self.file_name = file_name
            self.sheet_id = sheet_id
        else:
            self.file_name = 'G:\ImoocInterface\excel\interface_test.xlsx'
            self.sheet_id = 0
            self.data = self.get_data()

    #获取sheets的内容
    def get_data(self):
        data = xlrd.open_workbook(self.file_name)
        tables = data.sheets()[self.sheet_id]
        return tables

    #获取单元格的行数
    def get_lines(self):
        tables = self.data
        return tables.nrows

    #获取某一个单元格的内容
    def get_cell_value(self, row, col):
        return  self.data.cell_value(row, col)

if __name__ == '__main__':
    opers = OperationExcel()
    print(opers.get_data().nrows)
    print(opers.get_lines())
    print(opers.get_cell_value(1, 2))

附Excel表格截图:

运行结果: