- 邏輯:
合並單元格的控制是通過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