循环写入新工作表

时间:2020-02-07 23:52:33

标签: r loops split r-xlsx

我的循环完全完成了我想做的事情,除了写出我想让它遍历并每次打开新表的数据时,它没有这样做,而只是覆盖了单个excel文件中的数据。我的代码是:

file2 <- paste("filelocation", sep = "")
write.xlsx(Combined, file2, sheetName = (i))

我不知道为什么这行不通,因为这段代码在前面的代码中对我完全有用。

2 个答案:

答案 0 :(得分:1)

write.xlsx(Combined, file2, sheetName = (i), append=TRUE)

摘自xlsx文档:

附加一个逻辑值,指示是否应将x附加到现有文件中。如果为TRUE,则从磁盘读取文件。

编辑:

这行不通-娜塔莎·琼斯

此代码按预期对我有用:

library(xlsx)
write.xlsx(mtcars, "test.xlsx", sheetName ="firstSheet")
write.xlsx(mtcars, "test.xlsx", sheetName ="secondSheet", append=TRUE)
write.xlsx(mtcars, "test.xlsx", sheetName ="thirdSheet", append=TRUE)

生成的.xlsx文件有3张纸!您必须将字符串传递给参数sheet

sheetName一个带有工作表名称的字符串。即

for (i in 1:4) {
  write.xlsx(mtcars, "test.xlsx", sheetName = as.character(i), append=TRUE)
}

这对我也有用...

答案 1 :(得分:1)

这是一个简单的示例,用三张相同的纸写了一个工作簿。更改工作表内容以适合...

library(openxlsx)

wb = createWorkbook()
for (i in 1:3) {
  sheet_name = paste('mtcars', i)
  addWorksheet(wb, sheet_name)
  writeData(wb, sheet_name, mtcars)
}

saveWorkbook(wb, 'my_workbook.xlsx')
相关问题