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

R语言批量读取Excel指定工作表并按文件名自定义命名数据框

R批量导入Excel指定工作表并自定义数据框命名

实现思路

命名异常的核心原因是没有对文件路径做分层处理,直接用全路径拼接名称会携带冗余路径信息,按以下步骤处理即可达到命名要求:

  • 先从全路径中剥离纯文件名,去掉.xlsx后缀
  • 按文件名的分隔规则截取第一个标识词
  • 按照「文件名第一个词 + 指定工作表名 + df」的规则拼接数据框名称
  • 读取对应文件的指定工作表,将变量赋值到全局环境

可直接运行的代码

注意:把代码里的路径、目标工作表名替换成自己的实际参数即可

library(purrr)
library(readxl)

# --------------- 按需修改以下配置 ---------------
data_folder <- 'C:/Users/example/Drive/Desktop/Total_Related_Data/Analysis of Data/'
target_sheet_name <- "Balance"  # 所有文件中要批量读取的工作表名称
name_sep <- " "  # 文件名里的词分隔符,默认是空格,如果是下划线就改成"_"
# -----------------------------------------------

# 获取文件夹下所有xlsx文件的全路径
all_excel_files <- list.files(
  path = data_folder,
  pattern = "*.xlsx",
  full.names = TRUE,
  recursive = FALSE
)

# 批量读取并按规则命名
walk(all_excel_files, ~{
  # 提取不带路径的纯文件名(含后缀)
  file_with_ext <- basename(.x)
  # 去掉.xlsx后缀,得到纯文件名
  file_clean <- sub("\\.xlsx$", "", file_with_ext)
  # 截取文件名第一个词
  first_tag <- strsplit(file_clean, split = name_sep)[[1]][1]
  # 拼接最终数据框名称
  df_final_name <- paste(first_tag, target_sheet_name, "df", sep = " ")
  # 读取指定工作表,赋值到全局环境
  assign(
    x = df_final_name,
    value = read_excel(.x, sheet = target_sheet_name),
    envir = globalenv()
  )
})

补充说明

  • 代码用base R自带的basename()提取文件名,不需要额外安装依赖包,适配Windows/macOS不同系统的路径分隔规则
  • 不需要提前单独生成不带路径的文件名列表,遍历文件时同步处理即可,避免两个列表长度、顺序不匹配导致命名错配
  • 如果需要批量读取多个不同名称的工作表,只需要在现有逻辑外再套一层遍历工作表名的循环即可,命名规则同步调整就行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:12:29