openxlsx :: write.xlsx为startRow抛出未使用的参数错误
我想读取一堆位于同一目录中的excel文件,并将它们存储在统一的Excel文件的不同工作表中。
我正在使用xlsx
和openxlsx
的组合来实现这一点。 原因是, 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) })