【问题标题】:Python3, using openpyxl to read cellsPython3,使用openpyxl读取单元格
【发布时间】:2018-05-08 16:57:18
【问题描述】:

感谢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)'不起作用。我最初尝试了 print(cells),但它不会返回单元格中的值,而是类似于

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

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

【问题讨论】:

    标签: python-3.x printing openpyxl


    【解决方案1】:

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

    【讨论】:

    • 如果它解决了您的问题,请点击答案旁边的勾选按钮接受答案。谢谢
    • 你的意思是你把return放在for循环里?它只会返回第一个元素。如果您想要所有结果,可以将它们保存在列表中。
    • 我想通了 :) 非常感谢!
    猜你喜欢
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    相关资源
    最近更新 更多