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

R语言如何批量合并文件夹内所有.xlsx文件为单个数据框

R批量合并同结构Excel文件方案

核心逻辑

不需要逐行手动写读取代码给每个文件单独赋值,通过文件系统匹配规则自动识别目标文件夹内的所有符合要求的Excel,批量读取后直接按行合并为单个数据框。后续新增同结构文件时,只要将文件放入指定文件夹,重新运行代码即可自动纳入合并范围,无需修改代码。

前置依赖

使用readxl包读取Excel文件,dplyr包做批量数据绑定,未安装的话先运行以下命令安装:

install.packages(c("readxl", "dplyr"))

安装完成后加载包:

library(readxl)
library(dplyr)

完整实现代码

# 替换为你本地存放所有目标Excel文件的文件夹路径
target_folder <- "C:/your/local/excel_storage_folder"

# 批量获取文件夹内所有符合规则的Excel文件路径
excel_file_list <- list.files(
  path = target_folder,
  # 匹配规则:仅识别文件名以xyz.xlsx结尾的文件,避免读入无关Excel
  pattern = "*xyz.xlsx",
  full.names = TRUE,
  recursive = FALSE # 若需要同时合并子文件夹内的文件,将该参数改为TRUE
)

# 批量读取+合并
merged_data <- lapply(excel_file_list, function(single_file) {
  # 读取单个Excel文件
  temp_df <- read_excel(single_file)
  # 可选操作:新增一列标记数据来源文件名,方便后续核对数据来源
  temp_df$source_filename <- basename(single_file)
  return(temp_df)
}) %>% 
  bind_rows() # 按行合并所有读入的数据框

使用说明

  • 代码运行完成后,合并好的完整数据存在merged_data变量中,可直接用于后续分析
  • 可通过table(merged_data$source_filename)快速校验每个文件的读取行数,确认所有文件都被正确读入
  • 如果需要合并文件夹内所有xlsx格式文件,不管文件名是否带xyz,将pattern参数修改为"*.xlsx"即可;如果是旧版xls格式文件,对应修改匹配规则为"*.xls"
  • 若存在个别文件列名大小写不一致的情况,可在读取函数内增加names(temp_df) <- tolower(names(temp_df))统一列名格式,避免合并时列错位

内容的提问来源于stack exchange,提问作者Robyn O'Halloran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:33:16