Openxlsx包-在一张纸上写多个表?

Jea*_*uda 3 excel r

是否可以在一张Excel工作表中编写多个表?从我的尝试中,我看到只有最后一个对象正在写入文件。可能是我每次都覆盖文件。所以我想知道如何修改代码以将两个表写在同一张纸上?谢谢

data.sets <- ls("package:datasets")[c(5,7)]# list of data set names
foonames <- paste0("foo", seq_along(data.sets))
count <- length(data.sets)  
my.list <- list() 
for (i in 1:count) my.list[[foonames[i]]] <- get(data.sets[[i]])
lapply(my.list, dim)

filen<-sprintf('H:\\11_Analysis\\01_Eye Study\\Output\\Eyestudy1_%s.xlsx',
               Sys.Date());

library(openxlsx)
options("openxlsx.dateFormat" = "yyyy-mm-dd")

wb<-write.xlsx(my.list$foo1, filen, 
               startCol =2, startRow = 1, 
               asTable = T, withFilter = T, 
               colWidths="auto")

wb<-write.xlsx(my.list$foo1, filen, 
               startCol =2, startRow = 15, 
               asTable = T, withFilter = T, 
               colWidths="auto")
Run Code Online (Sandbox Code Playgroud)

tbr*_*ley 7

当您想将多个表写入同一工作表时,应创建工作簿,然后将数据写入其中,然后保存。您这样做的方式似乎正在覆盖数据。这是我会做的:

wb <- createWorkbook()
addWorksheet(wb, sheetName = "sheet1")

writeData(wb, sheet = 1, x = df, startCol = 2, startRow = 2)
writeData(wb, sheet = 1, x = df2, startCol = 2, startRow = 24)

saveWorkbook(wb, file = "path/to/file.xslx")
Run Code Online (Sandbox Code Playgroud)