R:在没有XLConnect的情况下一次读取多张Excel表格?

R:在没有XLConnect的情况下一次读取多张Excel表格?,r,excel,R,Excel,我需要处理Excel工作簿中存储的数据,有时每个工作簿最多有50张工作表,我希望一次全部阅读这些数据(或者说,一次阅读工作表3:47)。 我在其他讨论中看到,XLConnect可以做到这一点。但是,XLConnect不会加载到我的计算机上,因为rJava不会加载。最可能的原因是(我想,在研究了一下这个问题后,发现它很常见)我的Java版本是32位的,而我的R(3.3.3)版本是64位的。然而,我自己无法在我的工作计算机上安装不同版本的Java,而通过我们的it系统完成这项工作需要一段时间 因此,

我需要处理Excel工作簿中存储的数据,有时每个工作簿最多有50张工作表,我希望一次全部阅读这些数据(或者说,一次阅读工作表3:47)。 我在其他讨论中看到,XLConnect可以做到这一点。但是,XLConnect不会加载到我的计算机上,因为rJava不会加载。最可能的原因是(我想,在研究了一下这个问题后,发现它很常见)我的Java版本是32位的,而我的R(3.3.3)版本是64位的。然而,我自己无法在我的工作计算机上安装不同版本的Java,而通过我们的it系统完成这项工作需要一段时间

因此,我想知道是否有人知道使用openxlsx(或任何不需要rJava的软件包)一次读取多张Excel表格的方法?我曾尝试过编写循环,但没有成功,当它没有抛出错误时,它只在其中一张纸上读取


编辑:我还发现了一个使用名为xlsReadWrite的包的方法,但该包不适用于较新版本的R,事实上已从CRAN存储库中删除。

我无法发表评论,因为我没有足够的rep,但
readxl
包是主动维护的,不需要java或Perl,您可以阅读它

您可以尝试使用lappy函数编写此代码

library(xlsReadWrite)
sheets <- c("Sheet 1","Sheet 2", "Sheet 3")
sheet_list <- lapply(sheets, function(x) 
                   read.xls("filename.xls",sheets=x))
库(xlsreadswrite)

sheets这是一个使用readxl的解决方案

library(readxl)
inputWB <- "C:/This/Is/A/Path/To/Your/Excel/Workbook.xlsx"
sheetsToRead <- 3:47
listOfSheets <- lapply(sheetsToRead, function(x,inputWB) read_excel(inputWB, sheet=x), inputWB)
库(readxl)

inputWB您试过
readxl
吗?不,我现在就试-谢谢!太好了,我试试看!谢谢:)我尝试了
读取excel(“path”,range=3:47)
,但遇到了一个错误:
使用方法中的错误(“as.cell\u limits”):没有适用于“as.cell\u limits”的方法应用于类“c”('integer','numeric')”的对象。
我不知道该怎么做?通过查看文档
?读取excel
,我想您需要
sheet
参数来指定要读取的工作表,而不是
range
,不幸的是,它不起作用。。。“板材的长度必须为1”。我对“range”做了更多的研究,它似乎应该用来选择一张表中的一系列单元格,但不是一次选择几张表。例如,
read\u excel(“path”,range=“sheet1!A1:F5”)
可以工作,但是
range=“sheet1A1:sheet10:F5”
不能工作。如果
read\u excel()
一次只能读取一张工作表,我建议开始考虑对
循环使用
,或者查看
apply
函数族。虽然网上有很多关于这些的有用教程。谢谢,但不幸的是xlsReadWrite不适用于R版本3.3.3。