客户这边,其中有一个如同上图所示的 sheet,然而需求是,需要将这张表第一列(一级部)数据相同内容做合并单元格处理,结果如下:
代码分享如下:
from openpyxl import load_workbook """合并单元格""" result_file = "C:/Users/Administrator/Desktop/123.xlsx" wb = load_workbook(result_file) ws = wb.get_sheet_by_name('Sheet1') # 获取第一列数据 type_list = [] i = 2 while True: r = ws.cell(i, 1).value if r: type_list.append(r) else: break i += 1 # 判断合并单元格的始末位置 s = 0 e = 0 flag = type_list[0] for i in range(len(type_list)): if type_list[i] != flag: flag = type_list[i] e = i - 1 if e >= s: ws.merge_cells("A" + str(s + 2) + ":A" + str(e + 2)) s = e + 1 if i == len(type_list) - 1: e = i ws.merge_cells("A" + str(s + 2) + ":A" + str(e + 2)) wb.save(result_file)
