开发者

python使用openpyxl打开及读取excel表格过程

开发者 https://www.devze.com 2024-09-14 09:26 出处:网络 作者: 沉觞流年
目录openpyxl简介安装openpyxl打开及读取表格内容1、打开 Excel 表格并获取表格名称2、通过 sheet 名称获取表格3、获取表格的尺寸大小(几行几列数据)4、获取表格内某个格子的数据5、获取某个格子的行数、列数、坐标6
目录
  • openpyxl简介
  • 安装openpyxl
  • 打开及读取表格内容
    • 1、打开 Excel 表格并获取表格名称
    • 2、通过 sheet 名称获取表格
    • 3、获取表格的尺寸大小(几行几列数据)
    • 4、获取表格内某个格子的数据
    • 5、获取某个格子的行数、列数、坐标
    • 6、获取一系列格子
  • 总结

    openpyxl简介

    openpyxl 最好用的 python 操作 excel 表格库,但不是官方的标准库,需要手动安装

    可以读取和写入excel文件,支持【.xlsx / .xlsm / .xltx / .xltm】格式的文件,可处理excel数据、公式、样式,且可以在表格内插入图表

    官方文档

    安装openpyxl

    pip install openpyxl
    或
    pip3 install openpyxl

    打开及读取表格内容

    首先,需要了解 Excel 表格中的 行(row)、列(column)、格子(cell) 和 sheet 表

    python使用openpyxl打开及读取excel表格过程

    1、打开 Excel 表格并获取表格名称

    python使用openpyxl打开及读取excel表格过程

    from openpyxl import load_workbook
    
    # 1.打开 Excel 表格并获取表格名称
    
    # 打开当前py程序路径下excelDemo文件夹下的qiyuan.xlsx文件
    workbook = load_workbook(filename='./excelDemo/qiyuan.xlsx')
    print(workbook.sheetnames)
    #输出结果: ['机审测试用例', '分期产品管理端', '分期产品app端']
    # 一共三个表格

    2、通过 sheet 名称获取表格

    from openpyxl import load_workbook
    
    # 1.打开 Excel 表格并获取表格名称
    
    # 打开当前py程序路径下excelDemo文件夹下的qiyuan.xlsx文件
    workbook = load_workbook(filename='./excelDemo/qiyuan.xlsx')
    print(workbook.sheetnames)
    #输出结果: ['机审测试用例', '分期产品管理端', '分期产品app端']
    # 一共三个表格
    
    
    # 2.通过 sheet 名称获取表格
    sheet1 = workbook["分期产品app端"]
    print(sheet1)
    # 输出结果: <Worksheet "分期产品app端">
    

    3、获取表格的尺寸大小(几行几列数据)

    from openpyxl import load_workbook
    
    # 1.打开 Excel 表格并获取表格名称
    
    # 打开当前py程序路径下excelDemo文件夹下的qiyuan.xlsx文件
    workbook = load_workbook(filename='./excelDemo/qiyuan.xlsx')
    print(workbook.sheetnames)
    #输出结果: ['机审测试用例', '分期产品管理端', '分期产品app端']
    # 一共三个表格
    
    
    #python 2.通过 sheet 名称获取表格
    sheet1 = workbook["分期产品app端"]
    print(sheet1)
    # 输出结果: <WorksheAcFixIIFFet "分期产品app端">
    
    
    # 3.获取表格的尺寸大小(几行几列数据)
    print(sheet1.dimensions)
    # 输出结果: A1:S207
    # 从 A1:S207         A列到S列 共19列 207行

    4、获取表格内某个格子的数据

    from openpyxl import load_workbook
    
    # 1.打开 Excel 表格并获取表格名称
    
    # 打开当前py程序路径下excelDemo文件夹下的qiyuan.xlsx文件
    workbook = load_workbook(filename='./excelDemo/qiyuan.xlsx')
    print(workbook.sheetnames)
    #输出结果: ['机审测试用例', '分期产品管理端', '分期产品app端']
    # 一共三个表格
    
    
    # 2.通过 sheet 名称获取表格
    sheet1 = workbook["分期产品app端"]
    print(sheet1)
    # 输出结果: <Worksheet "分期产品app端">
    
    
    # 3.获取表格内某个格子的数据
    # 	1)  sheet["A1"]方式   获取 A1 格子的数据
    #       cell.value 获取格子中的值
    
    cell1 = sheet1['G5']
    print(cell1.value)
    # 输出结果:输出第7列第5行的内容:  
    # 	1.未登录/登录过期情况下Me按钮进入页面  2.在Me页面中点击Sign up now
    
    
    
    #   2) sheet.cell(row=, column=)方式
    cell2 = sheet1.cell(row=4,column=5)
    print(cell2.value)
    # 输出结果:输出第4行第5列的内容:  
    #	主页点击Apply Now查看是否能正常跳转到登录界面

    5、获取某个格子的行数、列数、坐标

    python使用openpyxl打开及读取excel表格过程

    • .row 获取某个格子的行数;
    • .columns 获取某个格子的列数;
    • .corordinate 获取某个格子的坐标
    from openpyxl import load_workbook
    
    # 1.打开 Excel 表格并获取表格名称
    
    # 打开当前py程序路径下excelDemo文件夹下的qiyuan.xlsx文件
    workbook = load_workbook(filename='./excelDemo/testCase.xlsx')
    
    # 2.获取表格 只有一张表格的时候,可以直接 active
    sheet2 = workbook.active
    print(sheet2)
    # 输出结果 <Worksheet "Sheet1">
    
    # 3.获取某个格子的行数、列数、坐标
    cell2 = sheet2["E3"]
    print(cell2.value, cell2.row, cell2.column, cell2.coordinate)
    # 输出结果: 20岁用户是否可以通过机审 3 5 E3

    6、获取一系列格子

    6.1 sheet[]方式

    from openpyxl import load_workbook
    
    # 1.打开 Excel 表格并获取表格名称
    
    # 打开当前py程序路径下excelDemo文件夹下的qiyuan.xlsx文件
    workbook = load_workbook(filename='./excelDemo/testCase.xlsx')
    
    # 2.获取表格 只有一张表格的时候,可以直接 active
    sheet2 = workbook.active
    print(sheet2)
    # js输出结果 <Worksheet "Sheet1">
    
    
    # 3.获取一系列格子  sheet[]方式
    
     js# 获取 A1:C2 区域的值
    cells = sheet2["A1:C2"]
    print(cells)
    # 输出结果:((<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>),
    # (<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>))
    
    # 先行后列
    for cell_rows in cells:
    	for cell_columns in cell_rows:
    		print(cell_columns.value)
    # 输出结果:
    # 功能模块(依据导图一级分支)
    # 功能点(二级功能点/二级测试子任务)
    # 优先级(主、高、中、低)
    # 机审规则
    # 年龄检测
    # 主

    特别的,如果我们只想获取“A 列”,或者获取“A-C 列”,可以采取如下方式:

    sheet["A"] --- 获取 A 列的数据
    sheet["A:C"] --- 获取 A,B,C 三列的数据
    sheet[5] --- 只获取第 5 行的数据
    from openpyxl import load_workbook
    
    # 1.打开 Excel 表格并获取表格名称
    
    # 打开当前py程序路径下excelDemo文件夹下的qiyuan.xlsx文件
    workbook = load_workbook(filename='./excelDemo/testCase.xlsx')
    
    # 2.获取表格 只有一张表格的时候,可以直接 active
    sheet2 = workbook.active
    print(sheet2)
    # 输出结果 <Worksheet "Sheet1">
    
    
    # 3.获取一系列格子 sheet[]方式
    
     #  1)获取 E 列的数据
    cells1 = sheet2["E"]
    # print(cells)
    
    for cell_columns in cells1:
    	print(cell_columns.value)
    # 输出结果:
    # 用例概述(根javascript据功能点进行分解)
    # 19岁用户是否可以通过机审
    # 20岁用户是否可以通过机审
    # 25岁用户是否可以通过机审
    # 61岁用户是否可以通过机审
    # 60岁用户是否可以通过机审
    # 在菲律宾境外提交申请
    # 在菲律宾境内提交申请
    
    #   2)获取 A,B,C 三列的数据
    cells2 = sheet2["A:C"]
    # print(cells)
    
    # 先行后列
    for cell_rows in cells2:
    	for cell_columns in cell_rows:
    		print(cell_columns.value)
    
    
    #   3) 只获取第 5 行的数据
    cells3 = sheet2["5"]
    for cell_columns in cells3:
    	print(cell_columns.value)

    6.2 .iter_rows()与.iter_cols()方式

    .iter_rows()是按行读取,.iter_cols()是按列读取。

    from openpyxl import load_workbook
    
    # 1.打开 Excel 表格并获取表格名称
    
    # 打开当前py程序路径下excelDemo文件夹下的qiyuan.xlsx文件
    workbook = load_workbook(filename='./excelDemo/testCase.xlsx')
    
    # 2.获取表格 只有一张表格的时候,可以直接 active
    sheet3 = workbook.active
    print(sheet3)
    # 输出结果 <Worksheet "Sheet1">
    
    
    # 3.获取一系列格子  .iter_rows()与.iter_cols()方式
    
    # 按行获取值
    # 读取1-2行中1-4列的数据(先行后列)
    # for i in sheet3.iter_rows(min_row=1, max_row=2, min_col=1,max_col=4):
    # 	for j in i:
    # 		print(j.value)
    		
    # 输出结果:
    # 功能模块(依据导图一级分支)
    # 功能点(二级功能点/二级测试子任务)
    # 优先级(主、高、中、低)
    # 用例编号(M-00001---管理端,A-00001---APP)
    # 机审规则
    # 年龄检测
    # 主
    # A-00001
    
    #  按列获取值
    # 读取1-2行中1-4列的数据(先列后行)
    for i in sheet3.iter_cols(min_row=1, max_row=2, min_col=1,max_col=4):
    	for j in i:
    		print(j.value)
    		
    # 输出结果:
    # 功能模块(依据导图一级分支)
    # 机审规则
    # 功能点(二级功能点/二级测试子任务)
    # 年龄检测
    # 优先级(主、高、中、低)
    # 主
    # 用例编号(M-00001---管理端,A-00001---APP)
    # A-00001

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号