openpyxl对合并单元格处理

  1. 逻辑:

合并单元格的控制是通过MergedCellRange这个类来控制的,调用的语句是这个:

for merged_range in sheet.merged_cells.ranges: 
sheet.merged_cells.ranges这个变量是MergedCellRange的集合,merged_range是MergedCellRange实例。是所有的合并单元格对象;所以上边这个语句就是对所有合并单元格类实例进行遍历;
if cell.coordinate in merged_range:
上面这句可以判断当前cell是否属于其中一个合并单元格,注意:如果单纯想看合并单元格都有哪些cell不可以用下面这句:
if isinstance(cell, MergedCell)
原因是合并区域的左上角cell(也就是唯一能用cell.value读出值的那个cell)它的实例类型并不是MergedCell,其余读不出值的cell类型才是MergedCell;
MergedCellRange.cells变量是当前合并单元格所有单元格的坐标tuple
 
获取合并单元格的值:
merged_range.min_row是合并单元格的最小行
merged_range.min_col是合并单元格的最小列
merged_range.max_row是合并单元格的最大行
merged_range.max_col是合并单元格的最大列
当前合并单元格的值等于左上角单元格的值:
Value= sheet.cell(row=merged_range.min_row,column=merged_range.min_col).value
 
 
 
 
原文地址:https://www.cnblogs.com/mghhzAnne/p/15217177.html