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 相关文章推荐
pyside写ui界面入门示例
Jan 22 Python
Python写的Tkinter程序屏幕居中方法
Mar 10 Python
Python实现多线程HTTP下载器示例
Feb 11 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
深入理解Python分布式爬虫原理
Nov 23 Python
python实现搜索文本文件内容脚本
Jun 22 Python
python爬取盘搜的有效链接实现代码
Jul 20 Python
Django自定义模板过滤器和标签的实现方法
Aug 21 Python
python 统计文件中的字符串数目示例
Dec 24 Python
jupyter notebook参数化运行python方式
Apr 10 Python
什么是python的列表推导式
May 26 Python
Python加速程序运行的方法
Jul 29 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生成Flash动画的实现代码
2010/03/12 PHP
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
php数据类型判断函数有哪些
2013/09/23 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
php获取远程文件大小
2015/10/20 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
妙用Angularjs实现表格按指定列排序
2017/06/23 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
django自带调试服务器的使用详解
2019/08/29 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
2014年综治宣传月活动总结
2014/04/28 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
2014最新实习证明模板
2014/10/02 职场文书
宇宙与人观后感
2015/06/05 职场文书
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android