You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将拆分出的对应Excel文件合并为含双工作表的单个Excel文件

合并按STYLE拆分后的独立Excel文件为双工作表文件

问题场景

原本需求是将包含「包装要求」和「数据」两个工作表的Excel文件2023.2.7RFID125款.xlsx,按STYLE列拆分——每个不同的STYLE值对应生成一个包含上述两个工作表的独立Excel文件。但执行以下拆分代码后,两个工作表被单独拆分,生成了两类独立文件:包装要求{STYLE}.xlsx和数据{STYLE}.xlsx。

原拆分代码:

import pandas as pd
df1 = pd.read_excel("2023.2.7RFID125款.xlsx",converters={"BARCODE":str,"SKU":str},sheet_name=0)
nodeDataList = list(df1.groupby(['STYLE']))
for nodeData in nodeDataList:
    nodeData[1].to_excel('包装要求'+ str(nodeData[0])+ '.xlsx', sheet_name='包装要求', index=False)# index=False输出不显示索引值
    
df2 = pd.read_excel("2023.2.7RFID125款.xlsx",converters={"BARCODE":str,"SKU":str},sheet_name=1)
nodeDataList = list(df2.groupby(['STYLE']))
for nodeData in nodeDataList:
    nodeData[1].to_excel('数据' + str(nodeData[0])+ '.xlsx',sheet_name='数据', index=False)

现在需要将对应同一STYLE的包装要求{STYLE}.xlsx和数据{STYLE}.xlsx合并为一个新Excel文件,其中包含两个工作表:「包装要求」(对应前者内容)、「数据」(对应后者内容)。

解决方案代码

import pandas as pd
import os

# 筛选当前目录下所有"包装要求"开头的Excel文件
pack_files = [file for file in os.listdir('.') if file.startswith('包装要求') and file.endswith('.xlsx')]

for pack_file in pack_files:
    # 从文件名提取对应的STYLE值
    style = pack_file.replace('包装要求', '').rstrip('.xlsx')
    data_file = f'数据{style}.xlsx'
    
    # 检查对应的数据文件是否存在,避免报错
    if not os.path.isfile(data_file):
        print(f"跳过:未找到{data_file},对应STYLE为{style}")
        continue
    
    # 读取文件,保持BARCODE和SKU为字符串类型(与原拆分代码一致)
    df_pack = pd.read_excel(pack_file, converters={"BARCODE": str, "SKU": str})
    df_data = pd.read_excel(data_file, converters={"BARCODE": str, "SKU": str})
    
    # 写入合并后的Excel文件
    with pd.ExcelWriter(f'{style}_合并文件.xlsx') as writer:
        df_pack.to_excel(writer, sheet_name='包装要求', index=False)
        df_data.to_excel(writer, sheet_name='数据', index=False)
    
    print(f"合并完成:{style}_合并文件.xlsx")

代码说明

  • 自动筛选所有拆分后的「包装要求」文件,无需手动指定STYLE值
  • 通过文件名匹配对应「数据」文件,确保STYLE一致性
  • 增加文件存在检查,避免因缺失文件导致程序崩溃
  • 保留converters参数,保证BARCODE、SKU等字段的字符串格式不丢失
  • 使用pd.ExcelWriter实现单文件多工作表的写入,符合最初的需求

内容的提问来源于stack exchange,提问作者高汤娃娃菜

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:50:33