将数据写入同一xlsx的不同工作表

时间:2020-05-15 15:25:57

标签: r

我想知道是否可以通过某种方式将多个变量写入同一xlsx文件的不同工作表。

我知道我可以将新图纸添加到现有文件中

write.xlsx(x = df,                      
           file = "df.xlsx",
           sheetName = "Data Sheet 2",
           append = TRUE)

但是,我不想为每张纸编写这段代码。是否有任何命令可以创建xlsx,并将不同的数据直接添加到不同的工作表中?

2 个答案:

答案 0 :(得分:1)

openxlsx库可以做到这一点。

library(openxlsx)

# iniate workbook object
wb <- createWorkbook()

# add 2 worksheets to the workbook object, arbitrary names
addWorksheet(wb, "Sheet 1")
addWorksheet(wb, "Sheet 2")

# some arbitrary data, can also be data.frames
x <- matrix(1:10, 5, 2)
y <- matrix(11:20, 2, 5)

# write data to worksheets in the workbook object
writeData(wb, 1, x)
writeData(wb, 2, y)

# save the workbook to a file
saveWorkbook(wb, "2sheets.xlsx")

答案 1 :(得分:1)

是的,您可以使用库writexl来执行该操作。请参阅以下示例,了解如何执行此操作。要直接生成多张图纸,您需要将元素放入列表中,然后使用该列表作为参数调用writexl :: write_xlsx。如果要自定义工作表的名称,可以将names()参数传递给列表。

library(writexl)

##create a list of data frames
list_of_data_frames <- lapply(1:10, function(i){
    data.frame(rnorm(1000))
})

##Add names to the list: these will be converted to sheet names in the workbook
names(list_of_data_frames) <- sapply(1:10, function(i)paste0("sheet_",i))

##Write to file
writexl::write_xlsx(list_of_data_frames, "data_frames_to_excel.xlsx")
相关问题