如何用R将多个Excel文件合并为一个工作簿的不同工作表?
用R实现多Excel文件合并为单文件多工作表
可以实现,以下是具体操作步骤:
1. 安装并加载依赖包
需要用到readxl读取Excel文件,openxlsx创建多工作表的Excel文件,执行以下代码完成安装和加载:
install.packages(c("readxl", "openxlsx")) library(readxl) library(openxlsx)
2. 获取目标文件列表
将所有需要合并的Excel文件放在同一个文件夹下,用代码批量获取文件路径:
# 设置文件所在文件夹路径,示例为当前工作目录 target_dir <- getwd() # 筛选出所有xlsx格式文件 excel_files <- list.files(path = target_dir, pattern = "\\.xlsx$", full.names = TRUE)
3. 合并文件为多工作表Excel
循环读取每个文件,将其内容作为独立工作表添加到新工作簿中:
# 创建空工作簿 merged_wb <- createWorkbook() # 遍历处理每个文件 for (file in excel_files) { # 读取文件数据(默认读取第一个工作表,需指定其他表可添加sheet参数) data <- read_excel(file) # 提取文件名作为工作表名称(去除路径和后缀) sheet_name <- tools::file_path_sans_ext(basename(file)) # 添加工作表并写入数据 addWorksheet(merged_wb, sheetName = sheet_name) writeData(merged_wb, sheet = sheet_name, x = data) } # 保存合并后的文件 saveWorkbook(merged_wb, file = "e.xlsx", overwrite = TRUE)
额外说明
- 若原Excel文件包含多个工作表,可嵌套循环读取每个文件内的所有工作表并添加到新工作簿
- 若文件路径包含中文,需确保R工作目录编码设置正确,避免读取异常
overwrite = TRUE参数会覆盖已存在的e.xlsx,如需保留原文件可修改输出文件名
内容的提问来源于stack exchange,提问作者nish
相关产品推荐
相关产品推荐

