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

求助:将多个单工作表Excel文件合并为一个多工作表文件

解决多Excel文件合并为单文件多工作表并保留原工作表名称的问题

你的代码核心逻辑可行,但当前用sheet_name=file会把带.xlsx后缀的文件名作为新工作表名称,而非原文件里的工作表名称。以下是修正后的代码:

import pandas as pd
from glob import glob
import re

# 用with语句管理ExcelWriter,自动处理资源释放
with pd.ExcelWriter("multiple_sheets.xlsx", engine='xlsxwriter') as excelWriter:
    for file in glob('*.xlsx'):
        # 获取原文件的唯一工作表名称(每个文件仅一个工作表)
        excel_file = pd.ExcelFile(file)
        original_sheet_name = excel_file.sheet_names[0]
        
        # 清洗工作表名称:移除Excel禁止的特殊字符,截断到31字符以内(Excel工作表名称长度限制)
        cleaned_sheet_name = re.sub(r'[\\/:*?"<>|]', '', original_sheet_name)[:31]
        
        # 读取数据并写入新文件
        df = excel_file.parse(original_sheet_name)
        df.to_excel(excelWriter, sheet_name=cleaned_sheet_name, index=False)

关键说明:

  • 用pd.ExcelFile(file).sheet_names[0]精准获取原Excel文件的工作表名称,替代原代码中用文件名当表名的逻辑
  • 增加名称清洗步骤:Excel不允许工作表名称包含\ / : * ? " < > |特殊字符,且长度不能超过31位,提前处理可避免写入报错
  • 改用with语句管理ExcelWriter,无需手动调用save(),代码更简洁且能自动释放资源

内容的提问来源于stack exchange,提问作者oscar salgado

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:15:38