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

如何在R语言中将CSV文件转换为Excel时保留原文件名?

解决CSV转Excel保留原文件名的问题

这个问题很好解决,核心就是从你的文件路径里提取原文件名、替换后缀就行啦!你原来的代码用循环序号生成文件名,所以才会出现file1.xlsx这类命名,我们只需要修改生成文件名的逻辑:

修改后的完整代码

filenames <- list.files("D:/finished CSVs", pattern="*.csv", full.names=TRUE)
for(i in 1:length(filenames)) {
  a <- read.csv(filenames[i])
  # 第一步:从完整路径中提取纯文件名(比如从"D:/xxx/analysis report.csv"拿到"analysis report.csv")
  original_filename <- basename(filenames[i])
  # 第二步:去掉.csv后缀,得到不带扩展名的原文件名
  name_no_ext <- tools::file_path_sans_ext(original_filename)
  # 第三步:拼接成.xlsx格式的新文件名
  new_xlsx_name <- paste0(name_no_ext, ".xlsx")
  
  # 如果你想把生成的Excel文件保存在原CSV所在的目录,也可以这样写(确保路径正确):
  # new_xlsx_name <- file.path(dirname(filenames[i]), paste0(name_no_ext, ".xlsx"))
  
  write.xlsx(a, new_xlsx_name)
}

关键步骤解释

  • basename():专门用来从完整文件路径中剥离路径部分,只留下文件名和扩展名。
  • tools::file_path_sans_ext():R内置工具函数,用来移除文件名的扩展名,不用自己写字符串替换,更可靠。
  • paste0():和paste()类似,但默认没有分隔符,用来拼接文件名和.xlsx后缀刚好合适。

这样修改后,你的analysis report.csv就会生成analysis report.xlsx,budgeting.csv生成budgeting.xlsx,完美保留原文件名~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:35:49