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选择排序算法的实现代码
Nov 21 Python
python使用xlrd模块读写Excel文件的方法
May 06 Python
python实现井字棋游戏
Mar 30 Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
Python基于递归算法求最小公倍数和最大公约数示例
Jul 27 Python
python调用外部程序的实操步骤
Mar 04 Python
jupyter notebook 重装教程
Apr 16 Python
解决Python字典查找报Keyerror的问题
May 26 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
PHP反射API示例分享
2016/10/08 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
JavaScript 继承详解(一)
2009/07/13 Javascript
ExtJS 入门
2010/10/29 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
js结合正则实现国内手机号段校验
2015/06/19 Javascript
javascript页面倒计时实例
2015/07/25 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
AngularJS用户选择器指令实例分析
2016/11/04 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
简单的JAVA编程面试题
2013/03/19 面试题
中学教师教育感言
2014/02/21 职场文书
护理专业自荐信范文
2014/02/26 职场文书
中学生寄语大全
2014/04/03 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS
Python开发五子棋小游戏
2022/04/28 Python