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

如何在R语言中将Excel工作簿拆分保存为单个CSV文件?

用R批量将Excel工作表导出为独立CSV文件

当然可以实现这个需求!比起你之前尝试的xlsx和XLConnect,更推荐用**readxl和writexl**这两个包——它们不需要依赖Java,配置起来更简单,操作也更顺畅。

下面是完整的实现步骤和代码:

步骤1:安装并加载所需包

如果还没安装这两个包,先运行安装命令:

install.packages(c("readxl", "writexl"))

然后加载包:

library(readxl)
library(writexl)

步骤2:读取Excel工作簿并获取所有工作表名称

首先指定你的Excel文件路径,然后用excel_sheets()获取所有工作表的名字:

# 替换成你的Excel文件路径
excel_path <- "你的文件路径/文件名.xlsx"
sheet_names <- excel_sheets(excel_path)

步骤3:循环导出每个工作表为CSV

用lapply()遍历每个工作表,读取数据后导出为CSV文件(逻辑清晰且代码简洁):

lapply(sheet_names, function(sheet) {
  # 读取当前工作表的数据
  data <- read_excel(excel_path, sheet = sheet)
  # 生成CSV文件名(用工作表名命名,避免重复)
  csv_filename <- paste0(sheet, ".csv")
  # 导出为CSV,若有中文建议设置UTF-8编码
  write.csv(data, file = csv_filename, row.names = FALSE, fileEncoding = "UTF-8")
})

补充小提示:

  • 如果Excel里有合并单元格、公式等特殊格式,readxl会自动处理成常规数据格式,不用担心读取异常。
  • 要是需要指定CSV的保存路径,直接在csv_filename里加上路径即可,比如paste0("目标文件夹路径/", sheet, ".csv")。
  • 要是你坚持想用xlsx包,逻辑其实类似:用getSheets()获取工作表名,循环读取后用write.csv()导出,但需要先确保Java环境配置正常,还是更推荐前面的无Java方案~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:15:53