美文网首页
使用openpyxl读取xlsx文件

使用openpyxl读取xlsx文件

作者: tenking | 来源:发表于2018-07-29 01:49 被阅读0次

注:因openpyxl返回的多为生成器,不方便解析,以下代码将返回为list


xlsx文档如下:

testcase.png

代码如下

"""
FileName    : parseTestCase.py
Author      : tenking
Date        : 2018-07-28
Describe    :
"""

import os

import openpyxl

# 获取当前路径
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]]

# 最大行数
max_row = worksheet.max_row
# 最大列数
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数量
    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', '测试打开百度网址', '网络OK', 'testData', '1、打开浏览器\n2、在地址栏中输入网址“http://www.baidu.com”,按Enter键', '1、成功打开网址\n2、页面title为“百度一下,你就知道”'], 
['testcase_002', 'Medium', '测试打开必应网址', '网络OK', 'testData', '1、打开浏览器\n2、在地址栏中输入网址“http://cn.bing.com”,按Enter键', '1、成功打开网址\n2、页面title为“必应中国”']]

相关文章

网友评论

      本文标题:使用openpyxl读取xlsx文件

      本文链接:https://www.haomeiwen.com/subject/bbzamftx.html