You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:20:22