码迷,mamicode.com
首页 > 编程语言 > 详细

python使用xlrd读取合并单元格

时间:2020-07-06 19:40:05      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:循环输出   技术   dex   mamicode   遍历   break   返回   val   形式   

合并单元格

技术图片

 

 

 操作方法:

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文件中合并单元格操作

问题:

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

python使用xlrd读取合并单元格

标签:循环输出   技术   dex   mamicode   遍历   break   返回   val   形式   

原文地址:https://www.cnblogs.com/xlfy/p/13256418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!