1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python 相同内容的单元格合并

python 相同内容的单元格合并

时间:2019-12-15 22:33:25

相关推荐

python 相同内容的单元格合并

#定义合并单元格的函数def Merge_cells(ws,target_list,start_row,col):'''ws: 是需要操作的工作表target_list: 是目标列表,即含有重复数据的列表start_row: 是开始行,即工作表中开始比对数据的行(需要将标题除开)col: 是需要处理数据的列'''start = 0 #开始行计数,初试值为0,对应列表中的第1个元素的位置0end = 0 #结束行计数,初试值为0,对应列表中的第1个元素的位置0reference = target_list[0] #设定基准,以列表中的第一个字符串开始for i in range(len(target_list)): #遍历列表if target_list[i] != reference: #开始比对,如果内容不同执行如下reference = target_list[i] #基准变成列表中下一个字符串end = i - 1 #列计数器ws.merge_cells(col + str(start + start_row) + ":"+col + str(end + start_row))start = end + 1if i == len(target_list) - 1: #遍历到最后一行,按如下操作end = iws.merge_cells(col + str(start + start_row) + ":"+ col + str(end + start_row))# 获取Excel表格中的数据from openpyxl import load_workbook # 用于读取Excel中的信息wb = load_workbook('data/产品清单.xlsx')sheet_names = wb.get_sheet_names()for sheet_name in sheet_names: # 遍历每个工作表,抓取数据,并根据要求合并单元格ws = wb[sheet_name]customer_list = [] # 客户名称pn_list = [] # 产品编码for row in range(6, ws.max_row - 2):customer = ws['B' + str(row)].valuepn = ws['C' + str(row)].valuecustomer_list.append(customer)pn_list.append(pn)# 调用以上定义的合并单元格函数`Merge_cells`做单元格合并操作start_row = 6 # 开始行是第六行Merge_cells(ws, customer_list, start_row, "B") # "B" - 客户名称是在B列Merge_cells(ws, pn_list, start_row, "C") # "C" - 产品编码是在C列wb.save("data/产品清单-合并单元.xlsx")

合并前

合并后

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。