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

时间:2016-12-12 20:52:31

标签: r excel

我想阅读一堆位于同一目录中的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月,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的函数改变了读取函数,以避免使用具有相似名称的几个函数,我仍然得到相同的错误:

 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)
})

0 个答案:

没有答案