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

如何用Python堆叠合并多个Excel工作簿的指定Tablet工作表

原代码问题排查

原代码漏数据、删行失效有4个明确原因:

  • 路径拼接错误:os.listdir(path)仅返回文件名,未拼接目标文件夹完整路径,若脚本运行的工作目录和Excel存放目录不一致,pd.read_excel(file)会直接报文件不存在错误,跳过对应文件。
  • 无异常/存在性校验:直接指定sheet_name='Tablet'读取,遇到无该工作表的文件时会直接抛出ValueError终止整个循环,后续所有文件都不会被处理,是漏数据的核心原因。
  • 方法兼容性问题:pandas 1.4.0及以上版本已经弃用DataFrame.append()方法,高版本环境下运行会直接抛错。
  • 删行逻辑位置错误:把drop语句作用在合并后的总表上,自然只会删除总表最开头的7行,不可能对每个单独读入的工作表生效。
修正后代码
import os
import pandas as pd

# 替换为你的Excel文件存放目录
path = r"path_location"
df_list = []
total_excel = 0
valid_count = 0
skip_list = []

for file in os.listdir(path):
    # 过滤xlsx文件,同时跳过Excel打开时生成的~$开头临时文件
    if file.endswith('.xlsx') and not file.startswith('~$'):
        total_excel += 1
        file_full_path = os.path.join(path, file)
        try:
            # 先读取文件结构,校验是否存在Tablet工作表
            xls_reader = pd.ExcelFile(file_full_path)
            if 'Tablet' not in xls_reader.sheet_names:
                skip_list.append(f"{file}:无Tablet工作表")
                continue
            # 读取时直接跳过开头7行冗余数据,无需读完再删除
            temp_df = pd.read_excel(xls_reader, sheet_name='Tablet', skiprows=7)
            # 可选:新增来源文件列,方便后续核对数据归属
            temp_df['source_file'] = file
            df_list.append(temp_df)
            valid_count += 1
        except Exception as e:
            skip_list.append(f"{file}:读取失败,错误信息{str(e)}")

# 一次性合并所有有效数据
final_df = pd.concat(df_list, ignore_index=True)
# 导出csv,指定编码避免中文乱码,不导出行号
final_df.to_csv('Tablet_total.csv', index=False, encoding='utf-8-sig')

# 打印处理日志,方便核对结果
print(f"共扫描到{total_excel}个有效Excel文件")
print(f"成功合并{valid_count}个文件的Tablet工作表数据")
print(f"未处理文件清单:{skip_list}")
关键改动说明
  • 路径处理:用os.path.join()拼接文件完整路径,同时自动过滤临时文件,避免工作目录不匹配导致的文件找不到问题。
  • 容错处理:读取前先校验工作表是否存在,遇到损坏文件、缺工作表的情况仅记录文件名,不会中断整个循环,跑完会输出未处理清单方便核对。
  • 冗余行处理:读取阶段直接通过skiprows=7参数跳过开头7行,从根源避免删行错位问题,比读完再drop效率更高。
  • 合并逻辑优化:用列表暂存每个工作表的DataFrame,最后通过pd.concat()一次性合并,兼容所有pandas版本,处理速度比循环append高30%以上,适合批量文件场景。
  • 导出优化:导出时指定utf-8-sig编码避免中文乱码,关闭行号导出减少冗余字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:42:58