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

如何修改R语言代码实现Excel多工作表的读取与保存?

修改R代码保存Excel多工作表

你可以在原函数中添加保存逻辑,将每个工作表对应的数据框保存为单独文件(CSV、Excel等格式均可),以下是两种实用修改方案:

方案1:保存为CSV文件

CSV格式兼容性强,适合多数场景:

library(readxl)    
multiplesheets <- function(fname, save_path = getwd()) {
   
  # 获取所有Excel工作表的信息
  sheets <- readxl::excel_sheets(fname)
  tibble <- lapply(sheets, function(x) readxl::read_excel(fname, sheet = x))
  data_frame <- lapply(tibble, as.data.frame)
    
  # 为数据框分配名称
  names(data_frame) <- sheets
    
  # 循环保存每个数据框为CSV
  for (sheet_name in sheets) {
    write.csv(data_frame[[sheet_name]], 
              file = file.path(save_path, paste0(sheet_name, ".csv")),
              row.names = FALSE)
    cat("已保存工作表:", sheet_name, "\n")
  }
    
  # 可选:返回数据框列表用于后续处理
  return(data_frame)
}
  
# 指定文件路径,若需自定义保存目录可添加save_path参数
path <- "/Users/mallikagupta/Desktop/Gfg.xlsx"
multiplesheets(path)

方案2:保存为单独Excel文件

如果需要保留Excel格式,可使用writexl包:

先安装并加载依赖包:

install.packages("writexl")
library(writexl)

修改后的函数:

library(readxl)    
library(writexl)

multiplesheets <- function(fname, save_path = getwd()) {
   
  # 获取所有Excel工作表的信息
  sheets <- readxl::excel_sheets(fname)
  tibble <- lapply(sheets, function(x) readxl::read_excel(fname, sheet = x))
  data_frame <- lapply(tibble, as.data.frame)
    
  # 为数据框分配名称
  names(data_frame) <- sheets
    
  # 循环保存每个数据框为单独Excel文件
  for (sheet_name in sheets) {
    write_xlsx(data_frame[[sheet_name]], 
               path = file.path(save_path, paste0(sheet_name, ".xlsx")))
    cat("已保存工作表:", sheet_name, "\n")
  }
    
  # 可选:返回数据框列表用于后续处理
  return(data_frame)
}
  
# 指定文件路径
path <- "/Users/mallikagupta/Desktop/Gfg.xlsx"
multiplesheets(path)

关键修改说明

  • 新增save_path参数,支持自定义保存目录,默认使用当前工作目录
  • 添加循环遍历逻辑,针对每个工作表的数据框执行保存操作
  • 保留原有读取和命名逻辑,新增保存完成的提示信息
  • 可选返回数据框列表,方便后续继续处理数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:35:39