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

R语言批量处理多工作表Excel文件的高效实现方法咨询

批量处理多工作表Excel文件的高效方案

针对你有131个格式一致工作表的Excel文件,完全可以通过自动化批量处理替代手动操作,步骤如下:

核心思路

通过获取所有工作表名称,封装单表读取逻辑,再批量遍历合并,全程无需手动指定工作表序号或修改站点ID。

具体代码实现

首先加载所需工具包:

library(readxl)
library(purrr)
library(dplyr)
library(stringr) # 用于提取站点信息
  1. 获取所有工作表名称
sheet_names <- excel_sheets("mydata.xlsx")
  1. 封装单表读取函数
    把读取、列筛选、站点信息提取的逻辑打包成函数:
read_single_sheet <- function(sheet_name) {
  # 从工作表名提取站点ID(比如从"(13) stationName"中取出13)
  station_id <- str_extract(sheet_name, "\\d+")
  # 提取站点名称
  station_name <- str_remove(sheet_name, "^\\(\\d+\\) ")
  
  # 读取工作表,按你的需求设置skip和n_max
  raw_df <- read_excel("mydata.xlsx", skip = 1, n_max = 65, sheet = sheet_name)
  
  # 提取指定列(替换为你实际需要的列名,比如c("日期", "温度", "湿度"))
  filtered_df <- raw_df %>% select(目标列1, 目标列2, 目标列3)
  
  # 新增站点标识列,方便后续区分数据来源
  filtered_df %>% mutate(
    station_id = station_id,
    station_name = station_name,
    .before = 1 # 可选:把站点信息放在数据最前列
  )
}
  1. 批量读取并合并所有数据
    用map_dfr直接遍历所有工作表,自动合并成一个完整数据框:
combined_data <- map_dfr(sheet_names, read_single_sheet)

方案优势

  • 全程自动化:无需手动逐个读取工作表,131个表一键处理
  • 自动提取站点信息:从工作表名中解析ID和名称,避免手动修改出错
  • 一步合并:map_dfr直接生成合并后的最终数据框,省去手动rbind的繁琐
  • 可维护性强:后续调整读取参数(如skip、n_max)或筛选列,只需修改函数内的对应部分

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:01:19