r – 来自.xlsx的read.xlsx,具有未知数量的工作表

假设我有一个excel文件,我想用read.xlsx函数读取到R read.xlsx 。 文件由电子表格组成,其中我不知道的数量(有200个这样的文件,所以手动检查张数将是巨大的痛苦)。 每个电子表格都按照适当的数据框架进行组织。 我希望将这些电子表格放在另一个上面。 我写了这样的东西:

  columnsILike <- c(1,40) for(i in 1:numberOfSheets){ dfInd <- read.xlsx("myfile.xlsx", i, # number of sheet colIndex=columnsILike, endRow=201, startRow=2, header=F) PreviousEmptyDataFrame <- rbind(PreviousEmptyDataFrame, dfInd) } write.csv(PreviousEmptyDataFrame, "data.csv") 

问题是,我怎么事先知道张数?

getSheets(loadWorkbook("file_path"))在XLSX包中应返回工作簿中的工作表的列表,以便您可以获取列表的长度以查找工作表的数量。

如果工作簿不太大,也可以使用软件包XLConnect

 library(XLConnect) wb <- loadWorkbook("myworkbook.xlsx") result <- do.call(rbind,lapply(getSheets(wb), function(sheet)readWorksheet(wb,sheet))) 

这个答案相当晚,但这不是简单吗?

gdata::sheetCount("myworkbook.xlsx")