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

如何从多个Excel工作簿中提取同一工作表并生成DataFrame

多Excel文件指定Sheet批量导入实现

你现有的代码已经完成了多文件路径选择的逻辑,补充循环读取逻辑即可,以下是完整可运行代码:

import tkinter as tk
from tkinter import filedialog
import pandas as pd

# 弹窗选择多个Excel文件
root = tk.Tk()
root.withdraw()
file_paths = filedialog.askopenfilenames(
    initialdir = "C:/",
    title = "选择需要处理的Excel文件(可多选)",
    filetypes = (("Excel文件","*.xlsx"),("所有文件","*.*"))
)
root.destroy()

# 批量读取Sheet1,存储为【文件名:DataFrame】格式的字典
df_collection = {}
for file_path in file_paths:
    # 提取不带后缀的文件名作为字典的键,方便后续索引
    file_name = file_path.split("/")[-1].rsplit(".", 1)[0]
    # 读取指定工作表,可根据需求添加header、skiprows等pandas读表参数
    df_collection[file_name] = pd.read_excel(file_path, sheet_name="Sheet1")

使用说明

  • 后续要操作对应文件的DataFrame时,直接通过df_collection["文件名"]调用即可,例如你选中了名为「2024年业绩.xlsx」的文件,调用df_collection["2024年业绩"]即可获取对应的数据表
  • 如果你需要生成独立的变量而非使用字典存储,可以用动态变量生成逻辑(不推荐,大量文件时变量管理难度高):
    for index, file_path in enumerate(file_paths):
        # 生成df_1、df_2……格式的独立变量
        globals()[f"df_{index+1}"] = pd.read_excel(file_path, sheet_name="Sheet1")
    
  • 如需兼容部分文件不存在Sheet1的场景,可添加异常捕获逻辑避免程序中断:
    df_collection = {}
    for file_path in file_paths:
        file_name = file_path.split("/")[-1].rsplit(".", 1)[0]
        try:
            df_collection[file_name] = pd.read_excel(file_path, sheet_name="Sheet1")
        except ValueError:
            print(f"文件[{file_name}]不存在Sheet1,已跳过导入")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:45:04