求助:使用Python3的openpyxl库读取xlsx单元格如何打印值
如何用openpyxl正确读取并打印xlsx单元格的值
问题描述
我正在学习用Python 3读取xlsx格式的电子表格,已经安装了openpyxl库并编写了初步代码,但卡在了如何正确打印单元格值这一步。我的初始代码如下:
from openpyxl import load_workbook book = load_workbook(filename='List.xlsx', data_only=True) lst = book.active def give_cell(workbook, start: str, end: str): cell_range = workbook[start:end] for cells in cell_range: print(cell... # 此处不知道如何正确获取并打印单元格值
解决方法
经Tc Zhong指导,我找到了正确的实现方式。这里的核心是理解openpyxl返回的单元格范围对象的结构:
workbook[start:end]返回的是行对象的迭代器,每一个cells变量其实是对应行中所有单元格对象组成的元组。- 要获取单个单元格的值,需要通过索引(比如
cells[0]获取该行第一个单元格)再调用.value属性。
完整可运行代码
方式1:打印指定范围每行的第一个单元格值
如果你的需求是打印每行的第一个单元格内容,可以用下面的代码:
from openpyxl import load_workbook book = load_workbook(filename='List.xlsx', data_only=True) lst = book.active def give_cell(workbook, start: str, end: str): cell_range = workbook[start:end] for cells in cell_range: # 打印每行第一个单元格的值 print(cells[0].value) # 示例:读取A1到C3的单元格范围 give_cell(lst, 'A1', 'C3')
方式2:遍历打印范围内的所有单元格值
如果需要打印指定范围内的每一个单元格值,可以嵌套一层循环遍历每行的单元格:
from openpyxl import load_workbook book = load_workbook(filename='List.xlsx', data_only=True) lst = book.active def give_cell(workbook, start: str, end: str): cell_range = workbook[start:end] for row_cells in cell_range: for cell in row_cells: print(cell.value) # 示例调用 give_cell(lst, 'A1', 'C3')
额外说明
- 代码中的
data_only=True参数会让openpyxl读取单元格的计算结果而非公式本身,如果需要读取单元格内的公式,移除这个参数即可。 - 如果需要获取单元格的其他属性(比如单元格坐标),可以直接访问单元格对象的
.coordinate属性,例如cell.coordinate。
内容的提问来源于stack exchange,提问作者Sophie
相关产品推荐
相关产品推荐

