汇总多表格数据

汇总工作薄内多个表格数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import pandas as pd
import os

# 查找当前文件夹.xlsx文件
path = os.getcwd()
files = os.listdir(path)
excelfiles = [f for f in files if not f.startswith(("~$")) and f.endswith((".xlsx"))]
for file in excelfiles:
file_path = os.path.join(path,file)

# 读取Sheet3,包含工单和产品料号信息
sheet3 = pd.read_excel(file_path, sheet_name='Sheet3')
# 读取Sheet2,包含入库单号和产品料号及数量信息
sheet2 = pd.read_excel(file_path, sheet_name='Sheet2')

# 从Sheet3中提取工单号和产品料号的对应关系
# 注意:根据实际数据,可能需要去重,因为同一工单和料号可能有多个记录
order_material = sheet3[['工单', '产品料号']].drop_duplicates()

# 从Sheet2中汇总每个产品料号的入库数量
material_summary = sheet2.groupby('产品料号')['入库数量'].sum().reset_index()

# 合并两个表,将工单号与汇总的入库数量关联起来
result = pd.merge(order_material, material_summary, on='产品料号', how='right')

# 按产品料号排序
result = result.sort_values('产品料号')

# 重置索引
result = result.reset_index(drop=True)

# 重命名列名
result.columns = ['工单号', '产品料号', '入库数量汇总']

# 保存结果到新的Excel文件
result.to_excel('产品料号入库汇总.xlsx', index=False)

print("处理完成,结果已保存到'产品料号入库汇总.xlsx'")