''' EXCEL中按照表头随机选择表头下的值 利用元组查重,确保所取值不重复 ''' import os.path import openpyxl import random import datetime from fuzzywuzzy import process file_add = "E:\\hwang\\pyproject\\weekmenu\\hz\\汇总表格.xlsx" root = "C:\\Users\\kc\\Desktop" wm = openpyxl.load_workbook(file_add) ws = wm.active xlsx_new = openpyxl.Workbook() sheet = xlsx_new.active # 获取表头列表 count = 0 list = [] for cell in ws[1]: list.append(cell.value) for i in range(len(list)): print(f"{count+1} -> {list[i]}") count += 1 now_time = datetime.datetime.today().strftime('%Y-%m-%d') # 赋值到新的工作表中 for x in range(4, 7): print(f"{list[x]}的结果是:") menutuple = {} sht = xlsx_new.create_sheet(title=list[x]) # for j in range(1, 21): row_random = random.randint(1, ws.max_row) item1 = ws.cell(row=row_random, column=x + 1).value count = 0 extrat = process.extractOne(item1, menutuple.values()) #匹配度 # 匹配值 大于60的情况 if extrat!=None : while extrat[1] > 80: # 确保菜单不相似 row_random = random.randint(1, ws.max_row) item1 = ws.cell(row=row_random, column=x+1).value extrat = process.extractOne(item1, menutuple.values()) print(item1, "while",extrat) menutuple[j] = item1 print(f"{j}:{menutuple[j]} ---->原为{ws.cell(row=row_random,column=2).value}菜单\n") sht.cell(row=j + 1, column=1, value=ws.cell(row=row_random,column=2).value) sht.cell(row=j+1,column=2,value=j) # 列值 sht.cell(row=1,column=3,value=list[x]) # 第一行 sht.cell(row=1, column=1, value=now_time) # 给A1赋值当前时间 sht.cell(row=j+1, column=3, value=item1) sheet.cell(row=j+1,column=1,value=j) # 列值 sheet.cell(row=1,column=x-2,value=list[x]) # 第一行 sheet.cell(row=j+1, column=x-2, value=item1) sheet.cell(row=1, column=1, value=now_time) # 给A1赋值当前时间 sheet.title = f"{now_time}" new_name = os.path.join(root, "随机结果"+now_time+".xlsx") xlsx_new.save(new_name) 结果预览: 2022-01-12 大荤 小荤 素菜 1 肉片炖香菇干 花菜炒肉 蒲瓜虾皮少许 2 红烧贡丸 西红柿炒鸡蛋 红烧毛芋 3 木耳炒肉 肉丝红萝卜炒香干 红烧冬瓜 4 黄豆炖猪蹄 红烧土豆 西红柿炒蛋 5 酱少许肉 肉末鸡蛋羹 肉末南瓜 6 菜干少许肉 "蒜苗炒香干红萝卜少许" 红烧豆腐干 7 "鹌鹑蛋金针菇千张" 炒豆芽 花菜炒肉 8 红烧鸡翅根 红烧豆腐 炒青菜 9 鸡米花 仔排炖黄瓜 炒包心菜 10 红烧鸡块 肉丝包心菜 红烧日本南瓜 11 山珍肉丸肉末 肉丝千张炒芹菜 菜生炒肉 12 红烧鸡肉 蒜苗炒豆腐干 炒大白菜 13 榨菜炒肉 卤荷兰豆 青椒炒千张 14 排藕炖排骨 仔排炖海带丝 肉片炒冬瓜 15 小酥肉 雪菜土豆肉末 藕丝炒肉 16 鸭肉炖笋干 千张炒萝卜丝 油泡粉丝 17 红烧鸡翅尖 虾皮少许蒲瓜 菜生少许黄瓜 18 红烧香肠 日本南瓜肉末 炒藕丝 19 红烧肉小油泡 仔排炖藕块 排骨炖黄瓜块 20 千张肉丝红萝卜少许 肉末日本南瓜 炒西葫芦
python | 实例之从汇总表格中随机提取值,匹配度高的值不重复提取