我需要使用存储在Excel工作簿中的数据,这些数据有时最多可达50张,并且希望一次性读取所有数据(或者一次读取,比如说3:47页)。 我在其他讨论中读过XLConnect可以做到这一点。但是,XLConnect不能在我的计算机上加载,因为rJava不会加载。最可能的原因是(我认为,在研究了这个问题后发现它非常普遍)我的Java版本是32位,而我的R版本(3.3.3)是64位。但是,我不能在自己的工作计算机上安装不同版本的Java,通过我们的IT系统完成它需要一段时间。
因此,我想知道是否有人知道使用openxlsx(或任何不需要rJava的软件包)一次读取多个Excel工作表的方法?我已经尝试过编写一个循环但是没有工作,当它没有抛出一个只能在其中一个工作表中读取的错误时。
编辑:我还发现了一个使用名为xlsReadWrite的软件包的方法,但该软件包不适用于较新版本的R,并且实际上已从CRAN存储库中删除。
答案 0 :(得分:0)
我无法发表评论,因为我没有足够的代表,但readxl
包被积极维护,不需要java或Perl,你可以阅读here
答案 1 :(得分:0)
您可以使用lapply函数
尝试此代码xlsReadWritelibrary(xlsReadWrite)
sheets <- c("Sheet 1","Sheet 2", "Sheet 3")
sheet_list <- lapply(sheets, function(x)
read.xls("filename.xls",sheets=x))
答案 2 :(得分:0)
这是使用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)