[英]How to convert xlsx files to csv files in RStudio? Need to convert multiple workbooks all with multiple spreadsheets
嘗試編寫 R 腳本,該腳本將轉換文件夾中的多個 xlsx 工作簿文件,同時還將工作簿中的工作表轉換為單獨的 csv 文件。 尋找一個腳本來自動將代碼應用於所有工作簿及其電子表格。
下面是將單個 xlsx 工作簿轉換為多個 csv 文件的示例。 請注意,不保證類型轉換是正確的。
xlsx_path <-"path_to_xlsx.xlsx"
sheet_names <- readxl::excel_sheets(xlsx_path)
# read from all sheets to a list of data frames
xlsx_data <- purrr::map(
sheet_names,
~readxl::read_excel(xlsx_path,.x,col_types = "text",col_names = FALSE)
)
# write a list of data frame to csv files
purrr::walk2(
xlsx_data,sheet_names,
~readr::write_csv(.x,paste0(xlsx_path,"-",.y,".csv"),col_names = FALSE)
)
# csv files will be saved as:
# path_to_xlsx-sheet1.xlsx, path_to_xlsx-sheet2.xlsx, ...
如果您需要將此 function 應用於許多 xlsx 文件。 使用list.files()
獲取所有 xlsx 文件的路徑。 並編寫一個 for 循環或使用另一個 map function 來迭代這個過程。
如果您使用的是 Rstudio,您可能已經安裝了 package readxl
。 他們有許多常見用例的工作流程在這里解釋: https://readxl.tidyverse.org/articles/articles/readxl-workflows.html
他們還提供了這個不錯的代碼片段來滿足您的要求:
read_then_csv <- function(sheet, path) {
pathbase <- tools::file_path_sans_ext(basename(path))
df <- read_excel(path = path, sheet = sheet)
write.csv(df, paste0(pathbase, "-", sheet, ".csv"),
quote = FALSE, row.names = FALSE)
df
}
path <- readxl_example("datasets.xlsx")
sheets <- excel_sheets(path)
xl_list <- lapply(excel_sheets(path), read_then_csv, path = path)
names(xl_list) <- sheets
如果您將 go 轉到此處並在搜索欄中輸入“excel”和“xls”,您將獲得可能有幫助的軟件包和功能列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.