Excel 和 Python 中的合并单元格结束

End of merged cells in Excel with Python

我正在使用 xlrd 包来解析 Excel 电子表格。 我想获取合并单元格的结束索引。

  A   B   C
  +---+---+----+
1 | 2 | 2 | 2  |
  +   +---+----+
2 |   | 7 | 8  |
  +   +---+----+
3 |   | 0 | 3  |
  +   +---+----+
4 |   | 4 | 20 |
  +---+---+----+
5 |   | 2 | 0  |
  +---+---+----+

给定行索引和列索引,我想知道合并单元格的结束索引(如果合并)

在本例中为 (row,col)=(0,0) ;结束 = 3

您可以使用 Sheet 对象的 merged_cells 属性:https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html?p=4966#sheet.Sheet.merged_cells-attribute

它returns已合并单元格的地址范围列表。

如果只想获取垂直合并单元格的结束索引:

def is_merged(row, column):
    for cell_range in sheet.merged_cells:
        row_low, row_high, column_low, column_high = cell_range
        if row in xrange(row_low, row_high) and column in xrange(column_low, column_high):
            return (True, row_high-1)
    return False