Home >Backend Development >Python Tutorial >How to use xlrd in Python to read merged cells
Merge cells
Operation method:
1. Use xlrd's own attributes: merged_cells
# Get the positions of all merged cells in the table and return them in list form (start row, end row, start column, end column )
merged = sheet.merged_cells #Result: [(1,5,0,1),(5,9,0,1)]
2. Use a loop to determine whether it is a merged unit The cell is still an ordinary cell, and the first row value in the merged cell is assigned to the merged cell
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: The simplest operation of reading merged cells in an Excel file
Question:
1. When outputting content, use coordinates to get the print. If there is an else in the outermost layer, 2 values will be returned (still confirming whether there will be other values if there is no outermost else. The problem exists)
2. It works fine when used for the first time, but the list returned by sheet.merged_cells is empty when used again? ?
Solution: Add formatting_info=True to the open file, and it will display normally
The above is the entire content of this article, I hope it will be helpful to everyone's study.
Related learning recommendations: python video tutorial
The above is the detailed content of How to use xlrd in Python to read merged cells. For more information, please follow other related articles on the PHP Chinese website!