TypeError: ‘set‘ object is not subscriptable

TypeError: ‘set’ object is not subscriptable

1. 整体错误:

DeprecationWarning: Call to deprecated function merged_cell_ranges (Use ws.merged_cells.ranges).
merged_ranges = sheet_.merged_cell_ranges # 获取当前工作表的所有合并区域列表
TypeError: ‘set’ object is not subscriptable

2. 场景: 使用openpyxl读取合并单元格的时候使用这个函数爆出的错误

3. 原因&解决

原因:

sheet_.merged_cell_ranges     # 这个方法被弃用

应该改成

sheet_.merged_cells.ranges

下划线_改成.
解决:
由于sheet_.merged_cell_ranges这个方法应该替换为sheet_.merged_cells.ranges完美解决问题
源代码:

import openpyxl as xl
if __name__ == "__main__":
    wb = xl.load_workbook("excel/demo_merge.xlsx")
    sheet_ = wb["Sheet1"]
    # 改动位置
    merged_ranges = sheet_.merged_cell_ranges   # 获取当前工作表的所有合并区域列表
    print(merged_ranges)

解决之后替换代码

import openpyxl as xl
if __name__ == "__main__":
    wb = xl.load_workbook("excel/demo_merge.xlsx")
    sheet_ = wb["Sheet1"]
    # 改动位置
    merged_ranges = sheet_.merged_cells.ranges  # 获取当前工作表的所有合并区域列表
    print(merged_ranges)

你可能感兴趣的:(bug,python)