R:在没有XLConnect的情况下一次读取多张Excel表格?
我需要处理Excel工作簿中存储的数据,有时每个工作簿最多有50张工作表,我希望一次全部阅读这些数据(或者说,一次阅读工作表3:47)。 我在其他讨论中看到,XLConnect可以做到这一点。但是,XLConnect不会加载到我的计算机上,因为rJava不会加载。最可能的原因是(我想,在研究了一下这个问题后,发现它很常见)我的Java版本是32位的,而我的R(3.3.3)版本是64位的。然而,我自己无法在我的工作计算机上安装不同版本的Java,而通过我们的it系统完成这项工作需要一段时间 因此,我想知道是否有人知道使用openxlsx(或任何不需要rJava的软件包)一次读取多张Excel表格的方法?我曾尝试过编写循环,但没有成功,当它没有抛出错误时,它只在其中一张纸上读取R:在没有XLConnect的情况下一次读取多张Excel表格?,r,excel,R,Excel,我需要处理Excel工作簿中存储的数据,有时每个工作簿最多有50张工作表,我希望一次全部阅读这些数据(或者说,一次阅读工作表3:47)。 我在其他讨论中看到,XLConnect可以做到这一点。但是,XLConnect不会加载到我的计算机上,因为rJava不会加载。最可能的原因是(我想,在研究了一下这个问题后,发现它很常见)我的Java版本是32位的,而我的R(3.3.3)版本是64位的。然而,我自己无法在我的工作计算机上安装不同版本的Java,而通过我们的it系统完成这项工作需要一段时间 因此,
编辑:我还发现了一个使用名为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。