python获取excel多个值_python如何获取多个excel单元格的值

一. 获取多个单元格的值报错:AttributeError: 'tuple' object has no attribute 'value'

需要读取的sample.xlsx

代码读取的是A3:B10之间的单元格

from openpyxl import load_workbook

wb = load_workbook(r"D:\python_workshop\python6\study\sample.xlsx")

sh = wb["Sheet"]

print(sh["A3":"B10"].value)

运行结果:

Traceback (most recent call last):

File "D:/python_workshop/python6/study/demo.py", line 8, in

print(sh["A3":"B10"].value)

AttributeError: 'tuple' object has no attribute 'value'

二. 如何解决

上面报错信息是,元组对象没有属性"value",我们先来看一下print(sh["A2":"B10"]),得到的是一个元组,比较有意思的是,元组中的每一项也是一个元组,这个元组里存储的是每一行的单元格对象:相当于 元组(A3: B10) ——> 第三行:元组(A3: B3),第四行:元组(A4: B4)...第十行:元组(A10: B10)——>每一个单元格对象

print(sh["A3":"B10"])

运行结果:

((, ), (, ), (, ), (, ), (, ), (, ), (, ), (, ))

这种多层嵌套的形式,我们要想获得最里面单元格对象,就要用到双层for循环:

for item in sh["A3":"B10"]: #item表示每一行的单元格元组

for cell in item: #cell表示每一行的每一个单元格对象

print(cell) #打印出每个单元格对象

运行结果:

得到单元格对象就好办了,只需要单元格对象.value,我们就可以获取单元格值。试试按照excel中的形式打印,得到的结果看起来很美观:

用enumerate包装一个可迭代对象,可以同时使用索引和迭代项,在迭代的同时获取迭代项所在位置时非常方便

for index, item in enumerate(sh["A3":"B10"]):

if index > 0:

print("\n")

for cell in item:

print(cell.value, end=" ")

运行结果:

2018-05-10 电影

hello world 小说

hi 数据

stop 美团

bike 花生

中国 电视

测试 连续剧

深圳 广告

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值