1. 基于行列编号的cell()方法读取
这是最常用的精准读取方式,使用工作表对象.cell(row=行号, column=列号).value即可获取对应位置的单元格内容,其中行号、列号均从1开始计数,和Excel界面的行列编号规则完全一致。
示例代码:
import openpyxl
# 加载已存在的Excel文件
wb = openpyxl.load_workbook("测试文件.xlsx")
# 获取指定工作表,此处获取第一个工作表
ws = wb.worksheets[0]
# 读取第2行第3列(对应Excel的C2单元格)的内容
cell_value = ws.cell(row=2, column=3).value
print(cell_value)
如果需要批量读取指定范围的单元格,可以嵌套循环实现:
# 读取第1-5行、第1-4列的所有单元格内容
for i in range(1, 6):
for j in range(1, 5):
print(ws.cell(row=i, column=j).value, end=" ")
print()
2. Excel坐标直接索引读取
也可以直接使用Excel原生的单元格坐标(如"A1"、“B3”)作为下标读取内容,写法更简单直观,适合已知单元格固定坐标的场景。
示例代码:
# 读取A1单元格内容
a1_value = ws["A1"].value
# 读取C4单元格内容
c4_value = ws["C4"].value
print(a1_value, c4_value)
总结
openpyxl读取指定单元格内容有两种通用方式:一是通过cell(row=行号, column=列号).value传入行列编号读取,适合动态指定行列位置的批量操作场景;二是直接通过工作表["单元格坐标"].value的方式读取,写法更简洁,适合固定单元格的内容获取。两种方式读取到的空单元格都会返回None,可以根据场景自行选择。
代码含义说明
pr1 = ws.cell(row=i, column=1).value 是Python使用openpyxl库操作Excel的典型代码,作用是获取指定工作表ws中第i行、第1列(对应Excel的A列)的单元格内容,并将内容赋值给变量pr1。
其中行号、列号的计数均从1开始,和Excel界面的行、列编号规则一致。
结合示例表格的效果
以背景给出的表格为例:
- 当
i=1时,pr1的值为2019-4-1; - 当
i=3时,pr1的值为2019-4-5; - 当
i=5时,pr1的值为2019-4-10。
常见使用场景
如果要遍历获取A列的所有内容,可以配合max_row属性实现,示例代码如下:
# 逐行读取A列所有数据
for i in range(1, ws.max_row + 1):
pr1 = ws.cell(row=i, column=1).value
print(pr1)
总结
ws.cell(row=i, column=1).value是openpyxl中精准获取指定行列单元格内容的方法,计数规则和Excel原生规则一致,配合行列遍历可以灵活实现表格内容的读取、统计等操作。

5089

被折叠的 条评论
为什么被折叠?



