openxlsx :: write.xlsx为startRow抛出未使用的参数错误

我想读取一堆位于同一目录中的excel文件,并将它们存储在统一的Excel文件的不同工作表中。

我正在使用xlsxopenxlsx的组合来实现这一点。 原因是, openxlsx无法读取.xls文件, xlsx是基于java的,当尝试写入大文件时,会导致内存不足,导致GC overhead limit exceeded错误。

这是我正在使用的代码:

 library(openxlsx) library(xlsx) mnth="january" outputFileName<-"Consolidated.xlsx" files <- list.files(path="./Original Files", pattern=mnth, full.names=T, recursive=FALSE) start_row<-1 lapply(files, function(x){ print(x) xlFile<-read.xlsx2(x, sheetIndex = 1, startRow = 2, header =T) #Reads all columns as factors #Write to Excel write.xlsx(xlFile, file=outputFileName, sheetName = mnth, startRow = start_row) start_row<- start_row + nrow(xlFile) }) 

我试图阅读1月份的所有文件(例如2016年1月1日,2016年1月),并将这些行附加到Consolidated xlsx文件的同一张表中。

但是我收到错误:

  Error in write.xlsx(xlFile, file = outputFileName, sheetName = mnth, : unused argument (startRow = start_row) 

文档清楚地提到startRow是一个可选参数。 有趣的是, sheetName也是一个可选参数,但不会抛出错误。

我已经运行了startRow = start_row被删除的代码,并且按照预期的方式工作,也就是说,只有最后一个xls文件的内容被重复覆盖。

更新我已经改变了从XLConnect函数的阅读function,以避免具有相似名称的几个function,我仍然得到相同的错误:

  Error in write.xlsx(xlFile, file = outputFileName, sheetName = placename, : unused argument (startRow = start_row) 

这里是XLConnect的代码:

 lapply(files, function(x){ print(x) xlFile<-readWorksheetFromFile(file = x, sheet=1, startRow=2) str(xlFile) l=list(dt,xlFile) #Write to Excel write.xlsx(xlFile, file=outputFileName, sheetName = mnth, startRow = start_row) start_row<- start_row + nrow(xlFile) })