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


本文摘自php中文网,作者coldplay.xixi,侵删。

合并单元格

操作方法:

1.使用xlrd自带属性:merged_cells

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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如何使用xlrd实现读取合并单元格的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python安装怎么改路径

Python中安装虚拟环境virualenv的方法

Python构建xml树结构的实例教程

Python开发学习包括哪些内容

Python数据分析是干什么的

Python一定要学爬虫么

Python 将pdf转成图片的方法

Python正则表达式和re库的相关内容介绍(代码示例)

Python有关名字绑定的相关介绍

Python中一些常用模块的介绍

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...