首页 > 解决方案 > Python3,使用openpyxl读取单元格

问题描述

谢谢Tc Zhong的帮助!打印值的正确方法是 print(cell[0].value)

---------这是原来的问题------

我目前正在学习 python 从 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 (cells.value)

当我在我的 python shell 中运行它时:

give_cell(lst, 'D3', 'D5')
Traceback (most recent call last):
  Python Shell, prompt 2, line 1
  File "/Users/Sophie/Documents/google search", line 7, in <module>
    print (cells.value)
builtins.AttributeError: 'tuple' object has no attribute 'value'

它告诉我'tuple'对象没有属性'value',但我不明白为什么它没有属性'value',或者为什么'print(cells.value)'不起作用。我最初尝试打印(单元格),但它不会返回单元格中的值,而是类似

(<Cell 'lst'.D3>,)
(<Cell 'lst'.D4>,)
(<Cell 'lst'.D5>,)

我不太确定发生了什么事。感谢您的帮助!

标签: python-3.xprintingopenpyxl

解决方案


如图所示,它是一个元组,您需要使用它cells[0].value来访问该元组的第一个元素。


推荐阅读