python-openpyxl模塊使用

1、openpyxl模塊介紹

openpyxl是讀寫Excel的python庫,是一個比較綜合的工具,可以同時讀取和修改Excel文檔,在自動化測試實現過程當中利用openpyxl讀取excel測試用例表中的數據,再結合ddt模塊可以高效提高測試效率,減小代碼冗餘度。python


1.openpyxl中有三個不一樣層次的類,每個類都有各自的屬性和方法:app

* 
    Workbook是一個excel工做表 
* 
   Worksheet是工做表中的表單sheet
* 
   cell表單中的一個格

2..打開excel的通常場景ide

  • 打開或者建立一個Excel須要建立一個Workbook對象工具

  • 獲取一個表則須要先建立一個Workbook對象,而後使用該對象的方法來獲得一個Worksheet對象測試


通常流程以下:
第一步:打開excel
workbook1=load_workbook('test_case.xlsx')
第二步:定位表單(test_data)
sheet=workbook1['test_data']
第三步:操做excel的test_data表單
一、定位單元格(cell),根據行列讀取測試數據
例如:
data=sheet.cell(3,2).value
print(data)
注意:excel

  • excel 存儲的數據,數字仍是數字:int—>int、 float—>float 、其餘類型—>strcode

  • 使用eval(數據) 將str類型轉換爲他原來的類型對象


統計行和列
max_row=sheet.max_row
max_cow = sheet.max_columnip

下面是我本身封裝了一個Handle類,功能大體以下:
1.讀取excel表格中的測試用例信息,壓縮成字典格式
2.將自動化測試結果寫入excel,並保存測試結果
3.此模塊能夠做爲通用功能使用,在之後的自動化測試中若是有須要可直接導入進行使用
注意:保存的時候要確保你當前的excel文件是關閉狀態文檔

代碼展現:

from openpyxl import load_workbook
import os

"""
類屬性:文件路徑,sheet表單,工做簿對象
類方法:
1.打開文件2.獲取表頭信息 3.獲取文件內容
"""
class Handle:
def __init__(self, filepath, sheet):
self.wb = load_workbook(filepath)
self.sh = self.wb[sheet]

#獲取全部的行對象
def get_all_rows_obj(self):
rows = list(self.sh.rows)
return rows

#獲取表頭信息
def get_title(self):
rows = self.get_all_rows_obj()
titles = []
for item in rows[0]:
titles.append(item.value)
return titles

# 獲取全部case信息,與表頭信息titles壓縮成字典
def get_all_caseinfo(self):
rows = self.get_all_rows_obj()
titles = self.get_title()
cases = []
for row in rows[1:]:
values = []
for item in row:
values.append(item.value)
cases.append(dict(zip(titles, values)))
print(cases)
return cases

#將測試結果寫入excel
def write_result_to_excel(self,row,col,value):
self.sh.cell(row, col).value = value

#保存測試結果
def save_result(self,file_path):
self.wb.save(file_path)

if __name__ == '__main__':
"""
1.獲取文件路徑
"""
cur_path = os.path.dirname(__file__)
case_path = os.path.join(os.path.dirname(cur_path), "resource\\login_case.xlsx")
print(case_path)
handle = Handle(case_path, "Sheet1")
handle.get_all_caseinfo()
相關文章
相關標籤/搜索