Aktualisierte Antwort mit readxl (22. Juni 2015)
Seit dem Posten dieser Frage wurde das readxl
Paket freigegeben. Es unterstützt sowohl xls
als auch xlsx
Format. Im Gegensatz zu anderen Excel-Importpaketen funktioniert es unter Windows, Mac und Linux, ohne dass zusätzliche Software installiert werden muss.
Eine Funktion zum Importieren aller Blätter in eine Excel-Arbeitsmappe wäre also:
library(readxl)
read_excel_allsheets <- function(filename, tibble = FALSE) {
sheets <- readxl::excel_sheets(filename)
x <- lapply(sheets, function(X) readxl::read_excel(filename, sheet = X))
if(!tibble) x <- lapply(x, as.data.frame)
names(x) <- sheets
x
}
Dies könnte aufgerufen werden mit:
mysheets <- read_excel_allsheets("foo.xls")
Alte Antwort
Aufbauend auf der Antwort von @mnel ist hier eine einfache Funktion, die eine Excel-Datei als Argument verwendet und jedes Blatt als data.frame in einer benannten Liste zurückgibt.
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)})
}
So könnte es aufgerufen werden mit:
importWorksheets('test.xls')
xlconnect
und erlaubt dasreadxl
Paketxlsx
, Excel-Dateien inR
(allen Blättern oder nur einigen) zu manipulieren