在R语言中按名称模式导入含指定特征工作表的多份XLSX文件求助
解决方案
步骤说明
- 精准筛选目标文件:只保留以
Opca开头的XLSX文件 - 对每个文件,先提取所有工作表名称,筛选出带
Dados前缀的工作表 - 逐个读取符合条件的工作表,最后合并所有数据
完整代码
library(readxl) library(dplyr) # 设置工作目录 setwd("H:/Bases/Teste") # 筛选以Opca开头的XLSX文件 file.list <- list.files(pattern = "^Opca.*\\.xlsx$", ignore.case = TRUE) # 定义读取单个文件的函数 read_target_sheets <- function(file_path) { # 获取当前文件的所有工作表名称 sheet_names <- excel_sheets(file_path) # 筛选带Dados前缀的工作表 target_sheets <- grep("^Dados", sheet_names, value = TRUE) # 读取所有目标工作表并合并 lapply(target_sheets, function(sheet) { read_excel(file_path, sheet = sheet) }) %>% bind_rows() } # 批量处理所有文件并合并最终数据 df <- lapply(file.list, read_target_sheets) %>% bind_rows()
代码解释
list.files(pattern = "^Opca.*\\.xlsx$"):用正则表达式精准匹配以Opca开头、以.xlsx结尾的文件,ignore.case=TRUE避免大小写差异导致的遗漏excel_sheets(file_path):获取当前文件的所有工作表名称grep("^Dados", sheet_names, value = TRUE):筛选出以Dados开头的工作表名称- 嵌套的
lapply和bind_rows:先处理单个文件内的所有目标工作表并合并,再将所有文件的结果合并为最终数据集
内容的提问来源于stack exchange,提问作者Igor Mendonça
相关产品推荐
相关产品推荐

