重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
10年积累的成都网站设计、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有宁津免费网站建设让你可以放心的选择与我们合作。如何使用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,就能正常显示
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联-成都网站建设公司行业资讯频道,感谢您对创新互联的支持。