注:因openpyxl返回的多為生成器拟杉,不方便解析妈拌,以下代碼將返回為
list
xlsx文檔如下:
代碼如下
"""
FileName : parseTestCase.py
Author : tenking
Date : 2018-07-28
Describe :
"""
import os
import openpyxl
# 獲取當(dāng)前路徑
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
file_dir = os.path.join(BASE_DIR, 'files')
xlsx_path = os.path.join(file_dir, 'testcase.xlsx')
# 載入xlsx文檔
wb = openpyxl.load_workbook(xlsx_path, data_only=True)
# 獲取文檔所有的sheet名稱窍育,返回為list
sheets = wb.sheetnames
# 選擇工作頁
worksheet = wb[sheets[1]]
# 最大行數(shù)
max_row = worksheet.max_row
# 最大列數(shù)
max_column = worksheet.max_column
all_list = []
temp_list = []
title_list = []
def get_column_values():
# 迭代獲取工作頁title
for cell in list(worksheet.rows)[1]:
title_list.append(cell.value)
# 迭代獲取所有的testcase
for i in range(1, max_column + 1):
for cell in list(worksheet.rows)[i + 1]:
if cell.value is not None:
temp_list.append(cell.value)
# 獲取title數(shù)量
max_len = len(title_list)
# 迭代將title和testcase聚合為字典溶褪,再將每一列添加到all_list中
for i in range(max_row):
row_dict = dict(zip(title_list, temp_list[0: max_len]))
if row_dict != {}:
all_list.append(list(row_dict.values()))
del temp_list[0: max_len]
return all_list
print(get_column_values())
# out:~
[['testcase_001', 'Medium', '測試打開百度網(wǎng)址', '網(wǎng)絡(luò)OK', 'testData', '1食茎、打開瀏覽器\n2、在地址欄中輸入網(wǎng)址“http://www.baidu.com”稀颁,按Enter鍵', '1芬失、成功打開網(wǎng)址\n2、頁面title為“百度一下匾灶,你就知道”'],
['testcase_002', 'Medium', '測試打開必應(yīng)網(wǎng)址', '網(wǎng)絡(luò)OK', 'testData', '1棱烂、打開瀏覽器\n2、在地址欄中輸入網(wǎng)址“http://cn.bing.com”阶女,按Enter鍵', '1颊糜、成功打開網(wǎng)址\n2、頁面title為“必應(yīng)中國”']]