合并内容相同单元格
客户这边,其中有一个如同上图所示的 sheet,然而需求是,需要将这张表第一列(一级部)数据相同内容做合并单元格处理,结果如下:
拿到需求,首先就想到问大佬设计器能不能完成这个操作,答案是不能,有图有真相:
我滴天呐,又可以发帖拿 Y 币了, 还得自己写代码,好麻烦啊。
代码分享如下:
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)
我公司里用的,我写了个 VBA 的程序搞定。应按要求合并上下 A-G 这样上下一样的单元格,而且是一层一层合并。写了三层循环搞定。这个应用都有一些特殊性,因实际应用的场景不一样,可能合的单元格的列也不一样。所以,只是合一列的话,有点简单。但合多列,又有不同样子的话,普适性可能又不好。
这个必须点赞👍
这个工具类机器人已经做出来了,人家嫌功能太简单,拒收 😭
好有道理
大佬文采不错啊哈哈哈,不过,这个做一个工具类机器人岂不是可以赚更多 Y 币,服务更多开发者,还能参赛哈哈哈