我有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
请让我知道还需要什么其他信息。
预先感谢
答案 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') )