接口测试基础-Exece的操作-openpyxl模块

读取Excele

#0、使用办公软件创建一个XLSX格式的文件,不能使用py来创建
     openpyxl只能处理xlsx格式的文件

#1、导入load_workbook,对已经已经存在的execl进行操作
from openpyxl import load_workbook
#2、实例化
#load_workbook('文件名称.xlsx')加载exel对象
wb = load_workbook("ExcelCase.xlsx")

# 3、实例化worksheet表单对象
#默认读取第一个表单
ws = wb.active

 

#4、单元格访问,遍历单元格
headers_list = [] #存放表头
TestCase = [] # 存放用例字典

for row in range(1, ws.max_row + 1):#最大行

    row_dict = {}  # 存放每一行的用例数据,字典是key:value键值对的形式存在的

    for column in range(1, ws.max_column + 1):#最大列
        a = ws.cell(row, column).value  #把每个单元格的值取出来
        if row == 1:#当行等于1的时候就是表头
            headers_list.append(a)#把表头添加到列表中
        else:
            key = headers_list[column-1]  #创建一个key字段,获取列表的元素,列表是位置元素,从0开始
            row_dict[key] = a # 给字典里面的key赋值

    if row != 1:
        TestCase.append(row_dict) #把每一行的用例存放在一个列表中
#5、保存数据
wb.save('文件名称.xlsx')

 

写Excele

# 封装的写Eexecl的方法
def write_execl(self,row,colum,data):
    '''
    :param row: 行
    :param colum: 列
    :param data: 值
    :return:
    '''
    # 实例化load_workbook
    wb = load_workbook(self.filename)
    # 实例化worksheet表单对象
    ws = wb[self.sheetname]
    one_cell = ws.cell(row,colum)
    one_cell.value = data
    wb.save(self.filename)#保存

 

改变Sheet标签按钮颜色

ws.sheet_properties.tabColor = "1072BA"

获取最大行,最大列

# 获得最大列和最大行
print(sheet.max_row)
print(sheet.max_column)

 获取每一行,每一列

# 因为按行,所以返回A1, B1, C1这样的顺序
for row in sheet.rows:
    for cell in row:
        print(cell.value)
 
# A1, A2, A3这样的顺序
for column in sheet.columns:
    for cell in column:
        print(cell.value)

设置单元格风格

① 需要导入的类

from openpyxl.styles import Font, colors, Alignment

② 字体

  • 下面的代码指定了等线24号加粗斜体,字体颜色红色。直接使用cell的font属性,将Font对象赋值给它。
  • 也是直接使用cell的属性aligment,这里指定垂直居中和水平居中。除了center,还可以使用right、left等等参数
bold_itatic_24_font = Font(name='等线', size=24, italic=True, color=colors.RED, bold=True)
 
sheet['A1'].font = bold_itatic_24_font

③ 对齐方式

# 设置B1中的数据垂直居中和水平居中
sheet['B1'].alignment = Alignment(horizontal='center', vertical='center')

④ 设置行高和列宽

# 第2行行高
sheet.row_dimensions[2].height = 40
# C列列宽
sheet.column_dimensions['C'].width = 30
posted @ 2020-05-19 15:40  清扬惋惜  阅读(335)  评论(0编辑  收藏  举报