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的时候使用这个函数爆出的错误,

原因&解决

由于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)