r - 来自.xlsx的read.xlsx,页数不详

时间:2014-05-14 17:20:30

标签: r excel for-loop r-xlsx

假设我有一个excel文件,我想用read.xlsx函数读取到R。文件由电子表格组成,其中我不知道的数量(有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")

问题是,我如何提前知道张数?

3 个答案:

答案 0 :(得分:5)

XLSX package中的

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

gdata::sheetCount("myworkbook.xlsx")