使用openpyxl读取xlsx文件

注:因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为“必应中国”']]

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • 状态码的分类 1** 信息,服务器收到请求,需要请求者继续执行操作 2** 成功,操作被成功接收并处理 3...
    零一间阅读 1,513评论 0 0
  • 《外科风云》里小护士杨羽性格干练豪爽,专业技术过硬,是陆晨曦最得力的助手。家境一般、和行动不便母亲相依为命的她,非...
    芈修阅读 4,300评论 2 1
  • 对于hdu3032题描述如下: Sample Input 232 2 323 3 Sample Out...
    sugar_coated阅读 3,602评论 0 1
  • 这是心灵自由第八期第六篇作业 晚上下了班要去赶火车,周末去外地上课两天,周日晚上在火车睡一宿回来。今年参加了好多课...
    杰西Lee阅读 2,929评论 0 3

友情链接更多精彩内容