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

 更新时间:2024年09月13日 16:08:24   作者:沉觞流年  
openpyxl是一个Python库,用于读写Excel 2010 xlsx/xlsm文件,它允许你轻松工作与Excel表格,进行数据处理和分析,支持读取、创建和修改Excel文件,甚至可以在Excel中插入图表等,安装非常简单,只需要使用pip命令即可

openpyxl简介

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

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

官方文档

安装openpyxl

pip install openpyxl
或
pip3 install openpyxl

打开及读取表格内容

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

1、打开 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端']
# 一共三个表格


# 2.通过 sheet 名称获取表格
sheet1 = workbook["分期产品app端"]
print(sheet1)
# 输出结果: <Worksheet "分期产品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、获取某个格子的行数、列数、坐标

  • .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)
# 输出结果 <Worksheet "Sheet1">


# 3.获取一系列格子  sheet[]方式

 # 获取 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)
# 输出结果:
# 用例概述(根据功能点进行分解)
# 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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python+OpenCV绘制多instance的Mask图像

    Python+OpenCV绘制多instance的Mask图像

    Mask图像中,不同值表示不同的实例(instance)。本文将详细为大家讲讲如何利用OpenCV绘制多instance的Mask图像,感兴趣的可以学习一下
    2022-06-06
  • Python图像处理之颜色的定义与使用分析

    Python图像处理之颜色的定义与使用分析

    这篇文章主要介绍了Python图像处理之颜色的定义与使用,结合实例形式分析了matplotlib模块中颜色值的相关使用操作技巧,需要的朋友可以参考下
    2019-01-01
  • 详解Python中字符串前“b”,“r”,“u”,“f”的作用

    详解Python中字符串前“b”,“r”,“u”,“f”的作用

    这篇文章主要介绍了Python中字符串前“b”,“r”,“u”,“f”的作用,感兴趣的朋友跟随小编一起看看吧
    2019-12-12
  • 老生常谈Python startswith()函数与endswith函数

    老生常谈Python startswith()函数与endswith函数

    下面小编就为大家带来一篇老生常谈Python startswith()函数与endswith函数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • python虚拟环境的安装配置图文教程

    python虚拟环境的安装配置图文教程

    下面小编就为大家带来一篇python虚拟环境的安装配置图文教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Python实现实时监测可视化数据大屏

    Python实现实时监测可视化数据大屏

    实时监测的可视化数据大屏是一种非常有用的工具,可以帮助我们实时了解数据的变化和趋势,下面我们将介绍如何使用Python代码实现实时监测的可视化数据大屏,需要的可以参考一下
    2023-06-06
  • Python常见错误类型及解决方法

    Python常见错误类型及解决方法

    如果说写代码最害怕什么,那无疑是Bug。而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向。Python常见错误类型及解决方法,拯救你的代码!消灭Bug的过程就是技能经验的累积过程。
    2023-06-06
  • Python 合并多个TXT文件并统计词频的实现

    Python 合并多个TXT文件并统计词频的实现

    这篇文章主要介绍了Python 合并多个TXT文件并统计词频的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • pytorch中index_select()的用法详解

    pytorch中index_select()的用法详解

    这篇文章主要介绍了pytorch中index_select()的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python获取域名ssl证书信息和到期时间

    python获取域名ssl证书信息和到期时间

    这篇文章主要为大家详细介绍了如何利用python实现获取域名ssl证书信息和到期时间,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-09-09

最新评论