"""
使用openpyxl对xlsx进行操作,目的是读取多个xlsx保存成一个,每个xlsx只有一个sheet。
sheet中第一行为标题,只保留一个,后面重复的行也只保留一个,保存为xlsx。
如果需要读取一个xlsx的所有表格sheets = wb.get_sheet_names(),再for
"""
import os
#Workbook新建一个xlsx
from openpyxl import Workbook
wb2 = Workbook()
ws2 = wb2.active
path='C:\\Users\\lenovo\\Documents\\Tencent Files'
lists=os.listdir(path)
""""""
#提取所有xlsx文件名称
temp=[]
for x in lists:
prefix,suffix=os.path.splitext(x)
if(suffix=='.xlsx'):
temp.append(x)
#load_workbook打开xlsx
from openpyxl import load_workbook
#把共有的第一行加入ws2
wb = load_workbook(path+'\\'+temp[0])
sheet = wb["Sheet2"]
for row in sheet.iter_rows():
ws2.append([cell.value for cell in row])
break
#se存储第3列(主键),不重复的加入ws2
se=set()
for x in temp:
wb = load_workbook(path+'\\'+x)
sheet = wb["Sheet2"]
i=1
for row in sheet.iter_rows():
if(i==1):
i+=1
continue
if row[0].value!=None:
if row[2].value not in se:
se.add(row[2].value)
ws2.append((cell.value for cell in row))
wb.close()
print()
ws2.title="Sheet2"
wb2.save("C:\\Users\\lenovo\\Desktop\\3.31.xlsx")
多个xlsx的提取及去重,保存
最新推荐文章于 2024-06-24 16:33:49 发布