使用openpyxl库读取Excel文件数据

在Python中,我们经常需要读取和处理Excel文件中的数据。openpyxl是一个功能强大的库,可以轻松地实现Excel文件的读写操作。本文将介绍如何使用openpyxl库读取Excel文件中的数据。

1. 导入所需库

首先,我们需要导入openpyxl库,这个库提供了许多用于操作Excel文件的功能。

复制代码
from openpyxl import load_workbook

2. 加载工作簿

接下来,我们需要加载Excel文件的工作簿。

复制代码
workbook = load_workbook(filename=r'C:\Users\liuchunlin2\Desktop\新建文件夹\新建 XLSX 工作表.xlsx')

请注意,filename参数需要指定Excel文件的路径。

3. 获取指定工作表

在Excel文件中,可能包含多个工作表。我们需要指定要获取数据的工作表名称。

复制代码
sheet_name = "Sheet1"
sheet = workbook[sheet_name]

根据指定的工作表名称,我们可以获取到对应的工作表对象。

4. 遍历行和列

接下来,我们可以使用不同的方法遍历工作表中的行和列,并获取每个单元格的值。

4.1 遍历行

我们可以使用iter_rows()方法来获取指定范围内的一系列行,并遍历每行中的每个单元格。

复制代码
for row in sheet.iter_rows(min_row=1, max_row=1, min_col=1, max_col=1):
    for cell in row:
        print(cell.value)

4.2 遍历列

同样地,我们可以使用iter_cols()方法获取指定范围内的一系列列,并遍历每列中的每个单元格。

复制代码
for col in sheet.iter_cols(min_row=1, max_row=1, min_col=1, max_col=1):
    for cell in col:
        print(cell.value)

4.3 遍历所有行和列

除了使用上述方法来遍历特定范围内的行和列,我们还可以直接获取工作表中的所有行和列,并遍历每个单元格。

复制代码
# 遍历所有行
for row in sheet.rows:
    for cell in row:
        print(cell.value)

# 遍历所有列
for col in sheet.columns:
    for cell in col:
        print(cell.value)

4.4 获取所有单元格的值

如果我们只关注单元格中的值,并跳过格式信息,可以使用iter_rows()iter_cols()方法的values_only=True参数来实现。

复制代码
# 获取所有行的值
for row in sheet.iter_rows(values_only=True):
    for cell_value in row:
        print(cell_value)

# 获取所有列的值
for col in sheet.iter_cols(values_only=True):
    for cell_value in col:
        print(cell_value)

4.5 获取指定范围的单元格区域

如果我们只需要获取特定范围内的单元格区域,可以使用切片来实现。

复制代码
# 获取指定范围内的单元格区域
for row in sheet['A1:E8']:
    for cell in row:
        print(cell.value)

总结

本文介绍了如何使用openpyxl库读取Excel文件中的数据。通过加载工作簿、获取指定工作表以及遍历行和列,我们可以轻松地读取Excel文件中的数据并进行处理

完整代码:

复制代码
from openpyxl import load_workbook

# 加载工作簿
workbook = load_workbook(filename=r'C:\Users\liuchunlin2\Desktop\新建文件夹\新建 XLSX 工作表.xlsx')

# 指定要获取数据的工作表名称
sheet_name = "Sheet1"

# 获取指定名称的工作表
sheet = workbook[sheet_name]

# 使用 iter_rows() 方法获取指定范围内的一系列行,并遍历每行中的每个单元格
for row in sheet.iter_rows(min_row=1, max_row=1, min_col=1, max_col=1):
    for cell in row:
        print(cell.value)

# 使用 iter_cols() 方法获取指定范围内的一系列列,并遍历每列中的每个单元格
for col in sheet.iter_cols(min_row=1, max_row=1, min_col=1, max_col=1):
    for cell in col:
        print(cell.value)

# rows 属性返回工作表中所有行的列表
for row in sheet.rows:
    for cell in row:
        print(cell.value)

# columns 属性返回工作表中所有列的列表
for col in sheet.columns:
    for cell in col:
        print(cell.value)

# 使用 iter_rows() 方法获取工作表中的所有行并返回每个单元格的值,values_only=True 参数可以跳过单元格的格式信息
for row in sheet.iter_rows(values_only=True):
    for cell_value in row:
        print(cell_value)

# 使用 iter_cols() 方法获取工作表中的所有列并返回每个单元格的值,values_only=True 参数可以跳过单元格的格式信息
for col in sheet.iter_cols(values_only=True):
    for cell_value in col:
        print(cell_value)

# 使用切片来获取指定范围内的单元格区域,并使用嵌套循环来遍历该区域内的每个单元格
for row in sheet['A1:E8']:
    for cell in row:
        print(cell.value)
相关推荐
兵慌码乱4 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析
python·sqlite·信号与槽·pyqt5·数据库设计·桌面应用开发·事务处理
金銀銅鐵5 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程
python·数学
FreakStudio9 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
用户03321266636710 小时前
使用 Python 从零创建 Word 文档
python
Csvn15 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定
后端·python
曲幽16 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
用户5569188175318 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录
python·自动化运维
兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
luckdewei1 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化
python