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的面向对象思想分析
Jan 14 Python
用Python实现命令行闹钟脚本实例
Sep 05 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
python3实现绘制二维点图
Dec 04 Python
Django后台管理系统的图文使用教学
Jan 20 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
Jan 28 Python
TensorFlow 显存使用机制详解
Feb 03 Python
Python同时迭代多个序列的方法
Jul 28 Python
5分钟快速掌握Python定时任务框架的实现
Jan 26 Python
Pytorch 中的optimizer使用说明
Mar 03 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Oct 16 Python
python绘制简单直方图(质量分布图)的方法
Apr 21 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 mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
2014/08/12 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
2015/08/05 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
Python-split()函数实例用法讲解
2020/12/18 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
详解CSS3浏览器兼容
2016/12/14 HTML / CSS
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
养殖行业的创业计划书
2014/01/05 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
秦兵马俑导游词
2015/02/02 职场文书
员工自我评价范文
2015/03/11 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
Vue接口封装的完整步骤记录
2021/05/14 Vue.js
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL
代码复现python目标检测yolo3详解预测
2022/05/06 Python