You need to enable JavaScript to run this app. 如何使用R为文件夹内所有Excel文件的全部工作表新增文件名列
优惠活动
大模型
产品
解决方案
定价
更多

如何使用R为文件夹内所有Excel文件的全部工作表新增文件名列

R语言实现方案

你可以用openxlsx包完成需求,该方案直接修改原Excel文件,不需要额外生成新文件或留存冗余数据框。

注意:运行代码前请先备份所有原始Excel文件,避免误操作导致数据损失。

操作步骤

  • 第一步:安装并加载依赖包
# 首次使用先安装包
install.packages("openxlsx")
library(openxlsx)
  • 第二步:运行批量处理代码,将代码中的your_excel_folder_path替换为你存放Excel文件的文件夹实际路径
# 设置Excel文件所在的文件夹路径
folder_path <- "your_excel_folder_path"
# 读取文件夹下所有xlsx/xls格式文件
excel_files <- list.files(path = folder_path, pattern = "\\.xlsx$|\\.xls$", full.names = TRUE)

# 遍历处理每个Excel文件
for (file_path in excel_files) {
  # 提取不带后缀的文件名,需要保留后缀的话删掉下面的gsub处理即可
  file_name <- gsub("\\.xlsx$|\\.xls$", "", basename(file_path))
  # 读取当前Excel的所有工作表名
  sheet_names <- getSheetNames(file_path)
  # 加载工作簿对象
  wb <- loadWorkbook(file_path)
  
  # 遍历处理每一张工作表
  for (sheet in sheet_names) {
    # 读取工作表数据
    df <- read.xlsx(wb, sheet = sheet)
    # 新增new_column列,所有行填充文件名
    df$new_column <- file_name
    # 将修改后的数据写回原工作表,直接覆盖原有内容
    writeData(wb, sheet = sheet, df, startRow = 1, overwrite = TRUE)
  }
  # 保存修改后的工作簿,直接覆盖原文件
  saveWorkbook(wb, file_path, overwrite = TRUE)
  # 释放工作簿对象,避免占用内存
  rm(wb)
}

说明

  • 如果你需要new_column填充的是带后缀的完整文件名,删掉file_name定义行的gsub处理,直接写file_name <- basename(file_path)即可
  • 该方案不会在R环境中留存多余的中间数据框,所有修改直接写入原文件,完全符合你的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 14:54:03