Python合并同文件夹下面Excel文件并且求和汇总

Python合并同文件夹下面Excel文件并且求和汇总

将程序放到Excel的文件夹下执行即可

import openpyxl,os,xlrd,time
import pandas as pd
import numpy as np
"""wb = openpyxl.load_workbook('200S010A.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
print(sheet['B1'].value)
b = sheet.max_row
print(b)
#卸载已安装的
pip uninstall xlrd #下载对应的版本
pip install xlrd==1.2.0"""
file_path = os.getcwd()
pathss=[]
for files in os.listdir(file_path):path = os.path.join(file_path, files)pathss.append(path)  #添加新元素
data=[]
DD=[]
for i in pathss:if i != file_path+r'\excel.py':wb=xlrd.open_workbook(i) #按相应路径读取工作簿ws=wb.sheet_by_index(0) #选取工作表for j in range(4,ws.nrows):#调整在第几行开始读取data.append(ws.row_values(j)) #读取整行数据,并存入列表DD.append(ws.cell_value(2,1))
#4.汇总数据到主Excel文件
wb=openpyxl.Workbook() #打开需要写入数据的文件
ws_main=wb.get_sheet_by_name('Sheet') #选取需要写入数据的工作表
for rows in range(2,len(data)+2):for col in range(1,len(data[rows-2])):ws_main.cell(row=rows,column=col).value=data[rows-2][col-1] #写入数据
ws_main.cell(row=1,column=1).value='序号'
ws_main.cell(row=1,column=2).value='仓库类别'
ws_main.cell(row=1,column=3).value='型材编号'
ws_main.cell(row=1,column=4).value='描述'
ws_main.cell(row=1,column=5).value='规格型号'
ws_main.cell(row=1,column=6).value=''
ws_main.cell(row=1,column=7).value='数量'
ws_main.cell(row=1,column=8).value='单位'
wb.save(file_path+"/合并后.xlsx") #保存数据
df = pd.read_excel(os.getcwd()+r'\合并后.xlsx')
df_sum = df.groupby(["仓库类别","型材编号","描述","规格型号"])["数量"].sum()#合并汇总条件
df_sum.to_excel(os.getcwd()+r'\汇总后.xlsx')
os.unlink(os.getcwd()+r'\合并后.xlsx')#删除文件wb=openpyxl.load_workbook(os.getcwd()+r'\汇总后.xlsx') #打开需要写入数据的文件
ws=wb.get_sheet_by_name('Sheet1') #选取需要写入数据的工作表
ws.cell(row=1,column=6).value=" , ".join(DD)
wb.save(file_path+"/汇总后.xlsx") #保存数据
print("程序执行完成!")

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注