Python使用xlrd实现读取合并单元格


Posted in Python onJuly 09, 2020

合并单元格

Python使用xlrd实现读取合并单元格

操作方法:

1.使用xlrd自带属性:merged_cells

# 获取表格中所有合并单元格位置,以列表形式返回 (起始行,结束行,起始列,结束列)
merged = sheet.merged_cells #结果:[(1,5,0,1),(5,9,0,1)]

2.使用循环判断是合并单元格还是普通单元格,并将合并单元格中的首行值赋值给合并单元格

def get_cell_type(row_index, col_index):
  """既能得到合并单元格也能得到普通单元格"""
  cell_value = None
  for (rlow, rhigh, clow, chigh) in merged: # 遍历表格中所有合并单元格位置信息
    # print(rlow,rhigh,clow,chigh)
    if (row_index >= rlow and row_index < rhigh): # 行坐标判断
      if (col_index >= clow and col_index < chigh): # 列坐标判断
        # 如果满足条件,就把合并单元格第一个位置的值赋给其它合并单元格
        cell_value = sheet.cell_value(rlow, clow)
        print('合并单元格')
        break # 不符合条件跳出循环,防止覆盖
      else:
        print('普通单元格')
        cell_value = sheet.cell_value(row_index, col_index)
 
    # else: 添加改行后只那一个单元格的内容5,0 会返回2个值普通单元格/合并单元格
    #   print('普通单元格')
    #   cell_value = sheet.cell_value(row_index, col_index)
 
  return cell_value
# 直接输入单元格的坐标。来获取单元格内容
# print(get_cell_type(5, 0))
 
# 利用循环输出某列的单元格内容
for i in range(1, 9):
  print(get_cell_type(i, 2))

PS:最简单的读取Excel文件中合并单元格操作

问题:

1.当输出内容时,使用坐标来获取print,若最外层有else会返回2个值(还在确认若无最外层else是否会有其他问题存在)

2.第一次使用时可以正常,再次使用时sheet.merged_cells返回列表为空??

解决方法:在打开文件中加入formatting_info=True,就能正常显示

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python安装cx_Oracle模块常见问题与解决方法
Feb 21 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
Jun 07 Python
mac 安装python网络请求包requests方法
Jun 13 Python
python实现屏保计时器的示例代码
Aug 08 Python
详解python的argpare和click模块小结
Mar 31 Python
python多线程并发及测试框架案例
Oct 15 Python
Python 日志logging模块用法简单示例
Oct 18 Python
python读取mysql数据绘制条形图
Mar 25 Python
Python unittest单元测试openpyxl实现过程解析
May 27 Python
python递归函数用法详解
Oct 26 Python
python 自动识别并连接串口的实现
Jan 19 Python
Pandas实现DataFrame的简单运算、统计与排序
Mar 31 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
Jul 09 #Python
浅谈优化Django ORM中的性能问题
Jul 09 #Python
Python单元测试及unittest框架用法实例解析
Jul 09 #Python
python 抓取知乎指定回答下视频的方法
Jul 09 #Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 #Python
Python Selenium模块安装使用教程详解
Jul 09 #Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 #Python
You might like
如何去掉文章里的 html 语法
2006/10/09 PHP
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
YII框架常用技巧总结
2019/04/27 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
jQuery 选择器项目实例分析及实现代码
2012/12/28 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
详解A标签中href=&quot;&quot;的几种用法
2017/08/20 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
关于反爬虫的一些简单总结
2017/12/13 Python
Python中一行和多行import模块问题
2018/04/01 Python
Python聊天室程序(基础版)
2018/04/01 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
"引用"与多态的关系
2013/02/01 面试题
《雷雨》教学反思
2014/02/20 职场文书
保险公司开门红口号
2014/06/21 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
邀请函模板
2015/02/02 职场文书
春节慰问简报
2015/07/21 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android