R - 将Excel工作簿拆分为csv文件

时间:2018-05-08 16:50:38

标签: r excel

在R中,有没有办法读取Excel工作簿,然后将每个工作表写入单独的csv文件?我看过'xlsx'和'XLConnect'软件包,找不到任何有用的东西。

2 个答案:

答案 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这些或做任何你想做的事。