一. 获取多个单元格的值报错: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 <module>
    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"])

运行结果:
((<Cell 'Sheet'.A3>, <Cell 'Sheet'.B3>), (<Cell 'Sheet'.A4>, <Cell 'Sheet'.B4>), (<Cell 'Sheet'.A5>, <Cell 'Sheet'.B5>), (<Cell 'Sheet'.A6>, <Cell 'Sheet'.B6>), (<Cell 'Sheet'.A7>, <Cell 'Sheet'.B7>), (<Cell 'Sheet'.A8>, <Cell 'Sheet'.B8>), (<Cell 'Sheet'.A9>, <Cell 'Sheet'.B9>), (<Cell 'Sheet'.A10>, <Cell 'Sheet'.B10>))

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

for item in sh["A3":"B10"]:            #item表示每一行的单元格元组
    for cell in item:                  #cell表示每一行的每一个单元格对象
        print(cell)                    #打印出每个单元格对象

运行结果:
<Cell 'Sheet'.A3>
<Cell 'Sheet'.B3>
<Cell 'Sheet'.A4>
<Cell 'Sheet'.B4>
<Cell 'Sheet'.A5>
<Cell 'Sheet'.B5>
<Cell 'Sheet'.A6>
<Cell 'Sheet'.B6>
<Cell 'Sheet'.A7>
<Cell 'Sheet'.B7>
<Cell 'Sheet'.A8>
<Cell 'Sheet'.B8>
<Cell 'Sheet'.A9>
<Cell 'Sheet'.B9>
<Cell 'Sheet'.A10>
<Cell 'Sheet'.B10>

得到单元格对象就好办了,只需要单元格对象.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 花生 

中国 电视 

测试 连续剧 

深圳 广告 

python如何获取多个excel单元格的值的更多相关文章

  1. python3 修改excel 单元格的值(xlsx)

    excel code #coding=utf- import os.path import os from openpyxl.reader.excel import load_workbook # e ...

  2. C# ASP.NET 读取EXCEL 单元格 读取 空值 不显示

    跟大家分享一下,[摘自]:http://blog.csdn.net/li185416672/article/details/8213729 读取excel时,某些单元格为空值 原来如此: 当我们用ol ...

  3. selenium获取html的表格单元格数据

    获取网页的表格的某个单元格的值,思路: 1.获取表格 2.获取表格的所有行 3.根据某一行获取该行的所有列 4.根据某一列获得该行该列的单元格值 根据以上思路,可以知道,只需要行.列就可以得到单元格的 ...

  4. python excel单元格及样式

    python excel单元格及样式: #!/usr/bin/env python # -*- coding: utf-8 -*-” #只对当前文件的中文编码有效 # Filename : Write ...

  5. C#中的Excel操作【1】——设置Excel单元格的内容,打开Excel文件的一种方式

    前言 作为项目管理大队中的一员,在公司里面接触最多的就是Excel文件了,所以一开始就想从Excel入手,学习简单的二次开发,开始自己的编程之路! 程序界面 功能说明 打开文件按钮,可以由使用者指定要 ...

  6. C# 对Excel 单元格格式, 及行高、 列宽、 单元格边框线、 冻结设置

    一.对行高,列宽.单元格边框等的设置 这篇简短的文字对单元格的操作总结的比较全面,特此转载过来. private _Workbook _workBook = null; private Workshe ...

  7. 简单介绍Excel单元格行列指示的实现原理(俗称聚光灯功能)

    原始出处:www.cnblogs.com/Charltsing/p/CellLight.html QQ:564955427 Excel单元格行列指示的实现原理(俗称聚光灯功能) 单元格行列指示功能在录 ...

  8. poi 升级至4.x 的问题总结(POI Excel 单元格内容类型判断并取值)

    POI Excel 单元格内容类型判断并取值 以前用 cell.getCachedFormulaResultType() 得到 type 升级到4后获取不到了 换为:cell.getCellType( ...

  9. vba打开excel文件遍历sheet的名字和指定单元格的值

    今天项目上有个应用,获取指定Excel文件下的所有sheet的名称以及当前sheet中指定单元格的值,并把他们写到固定的sheet中去,看了下,文件比较多,而且每个文件sheet的个数比较多,也不一样 ...

随机推荐

  1. echarts系列之动态加载数据

    1.echarts学习前言 最近接触到echarts,发现数据可视化真的是魅力无穷啊,各种变幻的曲线交错,以及‘曼妙’的动画效果真是让人如痴如醉! 下面就来一起欣赏她的美... “ ECharts是中 ...

  2. from PyQt4.QtGui import * 提示 ImportError: DLL load failed: %1 is not a valid Win32 application.

    个人用64位电脑安装了64位的PyQt后 from PyQt4.QtGui import * 提示 ImportError: DLL load failed: %1 is not a valid Wi ...

  3. 【Network】DDoS攻击防御

    DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是目前最强大,最难防御的攻击之一. 按照发起的方式 ...

  4. xml转换为对象 微信接口

    public sealed class XMLSerilizable { /// <summary> /// XML转换为对象 /// </summary> /// <t ...

  5. 计算机网络概述 传输层 TCP可靠传输的实现

    TCP可靠传输的实现 TCP的可靠性表现在:它向应用层提供的数据是 无差错的.有序的.无丢失的,简单的说就是:TCP最终递交给应用层的数据和发送者发送的数据是一模一样的. TCP采用了流量控制.拥塞控 ...

  6. Apache的order、allow、deny

    Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等),用来控制目录和文件的访问授权. 所以,最常用的是:Or ...

  7. 自己的第一个MapReduce程序

    数据源:来自互联网招聘hadoop岗位的薪资数据,其中几行示例数据如下: 美团 3-5年经验 15-30k 北京 [够牛就来]hadoop高级工程... 北信源 3-5年经验 15-20k 北京 Ja ...

  8. 12个提问频率最高的php面试题

    你是否正在准备寻找一份PHP开发的工作,并且也在寻找一些关于PHP的面试题及答案?本文为大家分享了一些被提问频率最高的11个PHP面试题,以及对应的常规回答,每个公司都有自己的面试标准,面试和问题是完 ...

  9. 20145230java实验报告二

    20145230实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 ...

  10. Python 数值类型

    1.数值类型分为整形(二进制(0b),八进制(0o),十进制,十六进制(0x) ),浮点型,long,complex(复合行) 当我们说十进制数的时候,是逢10进1,就是说到达10的时候就要向前一位进 ...