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'")
|