Я использовал openxlsx::read.xlsx
в последний раз, когда мне нужно было прочитать много листов из XLSX.
#install.packages("openxlsx")
library(openxlsx)
#?openxlsx::read.xlsx
#using file chooser:
filename <- file.choose()
#or hard coded file name:
#filename <- "filename.xlsx"
#get all the sheet names from the workbook
SheetNames<-getSheetNames(filename)
# loop through each sheet in the workbook
for (i in SheetNames){
#Read the i'th sheet
tmp_sheet<-openxlsx::read.xlsx(filename, i)
#if the input file exists, append the new data;; else use the first sheet to initialize the input file
ifelse(exists("input"),
input<-rbind(input, tmp_sheet),
input<-tmp_sheet)
}
Примечание. Предполагается, что каждый лист имеет одинаковую структуру столбцов и типы данных. Вам может потребоваться стандартизировать \ нормализовать данные (например, tmp_sheet <- as.data.frame(sapply(tmp_sheet,as.character), stringsAsFactors=FALSE)
) или загрузить каждый лист в свой собственный фрейм данных и выполнить дополнительную обработку перед объединением.