从汇总统计的角度,合并单元格非常不友好。单元格一旦合并,使用数据透视表,分类汇总都无法得到正确的结果。所以,对于原始数据,最好别随意合并单元格。但在日常的工作中,部分Excel打印档要求将某列上下内容相同的单元格合并,以便看起来清爽。比如下面这样的表格:
老板一般会要求在打印之前将B,C列上下相邻单元格内容相同的合并成如下这样的:
如果表格少,一个一个手动合并也未尝不可,但若遇到大量的表格,就得做好手软的准备了。现在用Python,一键批量处理Excel工作簿中的所有工作表的单元格合并,解放您的手指。
#定义合并单元格的函数
def Merge_cells(ws,target_list,start_row,col):
'''ws: 是需要操作的工作表target_list: 是目标列表,即含有重复数据的列表start_row: 是开始行,即工作表中开始比对数据的行(需要将标题除开)col: 是需要处理数据的列'''
start = 0 #开始行计数,初试值为0,对应列表中的第1个元素的位置0
end = 0 #结束行计数,初试值为0,对应列表中的第1个元素的位置0
reference = target_list[0] #设定基准,以列表中的第一个字符串开始
for i in range(len(target_list)): #遍历列表
if target_list[i] != reference: #开始比对,如果内容不同执行如下
reference = target_list[i] #基准变成列表中下一个字符串
<