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

R如何一次性导入指定文件夹内结构相同的多个Excel文件并合并

R批量导入同结构Excel文件并合并的方法

核心思路是先批量获取目标文件夹下所有Excel文件的路径,再通过批量读取函数一次性加载所有文件并自动按行合并,无需逐个定义数据框变量。

前置依赖

需要先安装并加载三个工具包:

  • readxl:用于读取Excel格式文件
  • purrr:用于实现批量循环操作
  • dplyr:用于数据框合并操作
    也可以直接加载完整的tidyverse包,上述三个包均包含在tidyverse生态中。

基础实现代码

# 加载所需包
library(readxl)
library(purrr)
library(dplyr)

# 替换为你实际存放Excel文件的文件夹路径
folder_path <- "./target_excel_folder"

# 获取文件夹下所有xlsx文件的完整路径
excel_file_paths <- list.files(
  path = folder_path,
  pattern = "\\.xlsx$", # 仅匹配xlsx后缀的文件,若为xls格式改为\\.xls$
  full.names = TRUE, # 返回文件完整路径,避免读取失败
  recursive = FALSE # 若需要读取子文件夹内的文件,改为TRUE即可
)

# 批量读取所有文件后自动按行合并为单个数据框
combined_data <- map_dfr(excel_file_paths, ~ read_excel(.x))

map_dfr函数会自动将批量读取返回的列表数据按行合并,无需额外调用bind_rows()。

进阶用法:保留数据来源文件名

如果需要标记每一行数据来源于哪个原始文件,可以调整代码新增来源列:

combined_data <- map_dfr(excel_file_paths, function(file_path) {
  read_excel(file_path) %>%
    mutate(source_file = basename(file_path)) # 新增列存储原始文件名称
})

注意事项

  • 所有待合并的Excel文件需要保证列名、列顺序完全一致,列的存储类型尽量统一,否则合并时会触发类型不匹配报错。如果出现类型错误,可以在read_excel()中添加col_types参数统一指定每一列的类型。
  • 如果需要同时匹配xlsx和xls两种格式,将pattern参数修改为\\.xlsx$|\\.xls$即可。
  • 该方法支持批量处理几十甚至上百个同结构Excel文件,代码不需要随文件数量调整,仅需修改文件夹路径参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:24:03