将 Excel 文件列表动态转换为 R 中的 csv 文件

Dynamically converting a list of Excel files to csv files in R

我目前有一个包含所有 Excel (.xlsx) 文件的文件夹,使用 R 我想使用 "openxlsx" 包(或某些变体)自动将所有这些文件转换为 CSV 文件).我目前有以下代码来转换其中一个文件并将其放在同一文件夹中:convert("team_order\team_1.xlsx", "team_order\team_1.csv")

我想自动执行该过程,以便它对文件夹中的所有文件执行此操作,并删除当前的 xlsx 文件,因此只保留 csv 文件。谢谢!

library(readxl)

# Create a vector of Excel files to read
files.to.read = list.files(pattern="xlsx")

# Read each file and write it to csv
lapply(files.to.read, function(f) {
  df = read_excel(f, sheet=1)
  write.csv(df, gsub("xlsx", "csv", f), row.names=FALSE)
})

您可以使用以下命令删除文件。但是,这对 运行 在前面的代码之后自动执行是危险的。如果前面的代码由于某种原因失败,下面的代码仍会删除您的 Excel 个文件。

lapply(files.to.read, file.remove)

为了安全起见,您可以将其包裹在 try/catch 块中。

您可以使用 rio 尝试此操作,因为您似乎已经在使用它:

library("rio")
xls <- dir(pattern = "xlsx")
created <- mapply(convert, xls, gsub("xlsx", "csv", xls))
unlink(xls) # delete xlsx files