在 openpyxl 中定位合并的单元格范围

Locating merged cell ranges in openpyxl

我正在使用 openpyxl 和 Pandas 从 .xlsx 文件中提取一些数据。

我找不到一个单元格 属性(或任何其他信息)来指示我可以在何处找到电子表格中合并的单元格。我如何知道哪些单元格合并在一起?

(编辑以完整回答问题并更新 2018-08-31)。

如果您想知道合并了哪些范围,您可以检查 merged_cells.ranges 工作表属性,它是一个列表 openpyxl.worksheet.cell_range.CellRange 个对象。

CellRange对象实现了__contains__,所以有可能 通过计算

查看单元格 A3 是否是单元格范围的一部分
any('A3' in rng for rng in ws.merged_cells.ranges)

要找出它属于哪个范围:

for rng in ws.merged_cells.ranges:
    if 'A3' in rng:
        break
else:
    rng = None

合并单元格的内容实际存储在左上角的单元格中 范围。访问留作 reader 的练习,就像使用其他 单元格引用的形式比标准 Excel 字符串。