在R中,有没有办法读取Excel工作簿,然后将每个工作表写入单独的csv文件?我看过'xlsx'和'XLConnect'软件包,找不到任何有用的东西。
答案 0 :(得分:3)
此处' sa const loadData = () => {
return new Promise((resolve, reject) => {
...
resolve(data)
})
}
方法(我的工作目录中的示例Excel文件名为 test.xlsx ,其中有三张名为Sheet1,Sheet2和Sheet3的表):
tidyverse
对于直接根据输入和输出路径执行此操作的函数,编辑,您可以执行以下操作:
library(readxl)
library(readr)
# Read sheets and use for filenames
sheets <- excel_sheets("test.xlsx")
filenames <- paste0(sheets, ".csv")
# read_excel only reads a single sheet, so lapply over each sheet name
dats <- lapply(sheets, read_excel, path = "test.xlsx")
# Save each data frame with different filename using write_csv
lapply(seq_along(dats), function(i) write_csv(dats[[i]], filenames[i]))
这会将CSV文件保存在指定目录中,如果没有,则保存在与Excel文件相同的文件夹中。
答案 1 :(得分:1)
尝试:
library(data.table)
library(XLConnect)
importWorksheets <- function(filename) {
workbook <- loadWorkbook(filename)
sheet_names <- getSheets(workbook)
names(sheet_names) <- sheet_names
sheet_list <- lapply(sheet_names, function(.sheet){
readWorksheet(object = workbook, .sheet)})
lapply(sheet_list, as.data.table)
}
基本上,这将在文件中读取data.tables列表,表示主电子表格中的表格。你可以rbindlist
这些或做任何你想做的事。