R xlsx包中的createSheet错误,尝试使用forl oop写多个工作表时

时间:2018-07-28 23:42:26

标签: r xlsx rjava

我有5个数据框,当我尝试用几个电子表格创建一个工作簿时,除一个外,其他所有作品都有效。我的工作表名称是字符串。谁能帮助我纠正这个问题? 我只能找到createSheet error xlsx llibrary,在这种情况下没有帮助。

To_write <- c('PR1','PR2','PR3','PR4','PR5')

#Create a new workbook for ouputs
workBook <- createWorkbook(type="xlsx")

for(tp in To_write ){

        sheet= xlsx :: createSheet(workBook,sheetName = as.character(tp) )
        addDataFrame(Data.Trans[[tp]], sheet, startRow = 1, row.names=FALSE)

}


saveWorkbook(workBook, file=paste0( ResultDir, '/','tTest.xlsx')   ) 

其中Data.Trans是list。仅当tp <-To_write [3]且错误消息为 .jcall(workBook,“ Lorg / apache / poi / ss / usermodel / Sheet;”,“ createSheet”,:中的错误:   java.lang.ArrayIndexOutOfBoundsException:0

请让我知道还需要什么其他信息。

预先感谢

1 个答案:

答案 0 :(得分:1)

对此进行测试:

Data.Trans<-list(PR1=data.frame(rnorm(100)),PR2=data.frame(rnorm(100)),PR3=data.frame(rnorm(100)),PR4=data.frame(rnorm(100)),PR5=data.frame(rnorm(100)))

To_write <- c('PR1','PR2','PR3','PR4','PR5')
library(xlsx)
#Create a new workbook for ouputs
workBook <- createWorkbook(type="xlsx")

for(tp in To_write ){

  sheet= xlsx :: createSheet(workBook,sheetName = as.character(tp) )
  addDataFrame(Data.Trans[[tp]], sheet, startRow = 1, row.names=FALSE)

}

dir.create("ResultDir")
saveWorkbook(workBook, file=paste0( "ResultDir", '\\','tTest.xlsx')   )