我們在寫測試用例的時候,是創建一個表格.xlsx,然后把各種條件加到這張表格中去,所以,如何對excel表格操作,是相當重要的一環,那么,接下來,這篇博客就直接教會大家如何通過python去處理平時工作中用到的測試用例表格,我們一步一步來,慢慢的給各位同學講明白。
首先,給大家先補個基礎的常識,就是你對一個excel的了解有多少?看下圖所示:
一、excel操作三大對象
workbook 工作薄:一個excel文件會被加載為一個工作薄對象workbook
form 表單:excel文件中,每個sheet表達會被加載成一個工作表對象sheet
cell 單元格:工作表中的每一個格子就是一個單元格,即表格對象cell
好,先把這些基礎的知識先了解,因為,excel主要就是操作這三個對象workbook、sheet、cell
以下,我拿一段代碼舉例,在用python操作excel時,先要安裝一個openpyxl,如何安裝?
安裝完成以后,開始建一個表格文件.xlsx,然后復制或者剪切到python的具體文件夾目錄下,以下是我自己隨意建的表格:
代碼如下:
import openpyxl # 第一步:將excel文件加載到一個工作薄對象中 wb = openpyxl.load_workbook("abc.xlsx") # 第二步:選擇文件中的表單 sh = wb["login"] # 第三步:讀取內容 ,cell表示單元格 res = sh.cell(row=1, column=1) # 第一行第一列 print(res.value) # 打印出 111
以上就是簡單的示例:讀取某個單元格的內容
二、數據的寫入
(單獨用的不多,不算重點,了解即可)
關於excel數據的寫入,單獨用的不多,一般會和會面的讀取數據寫入數據一起結合用,現在只是單獨拿出來講解,先做個大概的了解,可以總結以下四步規律
第一步:將excel文件加載到一個工作薄對象中
wb = openpyxl.load_workbook("文件名")
第二步:選擇文件中的表單
sh = wb["表單名"]
第三步:往表格中寫入數據
sh.cell(row=行, column=值, value='寫入的值')
第四步:保存
wb.save("文件名")
注意:在往excel中,寫入數據的時候,文件不能處於一個打開的狀態,否則會報錯
import openpyxl # 第一步:將excel文件加載到一個工作薄對象中 wb = openpyxl.load_workbook("abc.xlsx") # 第二步:選擇文件中的表單 sh = wb["login"] # 第三步:往表格中寫入數據 sh.cell(row=1, column=1, value='jack') # 第四步:保存 wb.save("abc.xlsx") # 打開表格看,111已經變為jack
三、數據的批量讀取
比如:給你一張表格,把表格的內容,一次性讀取出來,怎么辦?如何操作?如何用python來實現
import openpyxl # 第一步:將excel文件加載到一個工作薄對象中 wb = openpyxl.load_workbook("yyy.xlsx") # 第二步:選擇文件中的表單 sh = wb["login"] res = list(sh.rows) for item in res: for c in item: print(c.value, end=" ") print() # 起着換行的作用
四、excel用例數據讀取組裝成列表嵌套字典的格式
先給大家看一下這張表 testcases ,
我們想把它讀取出來,轉化成開頭的那種列表中嵌套字典的模式,怎么來弄?有的同學要問,為什么要弄成那種格式,因為,要和ddt結合起來使用,轉化成這種格式:
方便ddt的使用,只要轉化成這個列表中嵌套字典的格式,以后可以直接套用
import openpyxl # 第一步:將excel文件加載到一個工作簿對象中 wb = openpyxl.load_workbook("testcases.xlsx") # 第二步:選擇文件中的表單 sh = wb["login"] res = list(sh.rows) # 獲取第一行的單元格 title = [] # 遍歷第一行所有的單元格,將格子中的值添加到列表title中 for c in res[0]: title.append(c.value) cases_data = [] # 遍歷除第一行之外所有的行 for row in res[1:]: data = [] for c in row: data.append(c.value) item = dict(zip(title, data)) cases_data.append(item) print(cases_data)
五、excel的封裝
import openpyxl class Excel: def __init__(self, filename, sheet_name): self.filename = filename self.sheet_name = sheet_name def read_data(self): """讀數據""" # 第一步:將excel文件加載到一個工作簿對象中 wb = openpyxl.load_workbook(self.filename) # 第二步:選擇文件中的表單 sh = wb[self.sheet_name] res = list(sh.rows) # 獲取第一行的單元格 title = [] # 遍歷第一行所有的單元格,將格子中的值添加到列表title中 for c in res[0]: title.append(c.value) cases_data = [] # 遍歷除第一行之外所有的行 for row in res[1:]: data = [] for c in row: data.append(c.value) case = dict(zip(title, data)) # print(case) cases_data.append(case) return cases_data def write_data(self, row, column, value): """寫數據""" # 第一步:將excel文件加載到一個工作簿對象中 wb = openpyxl.load_workbook(self.filename) # 第二步:選擇文件中的表單 sh = wb[self.sheet_name] sh.cell(row=row, column=column, value=value) wb.save(self.filename)
未完待續。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。