将r中的列表写入excel文件

问题描述 投票:0回答:2

我有一个包含 5 个不同长度的数据帧的列表。我想将这些数据框写入同一个 Excel 工作表中。

我已经尝试过使用

WriteXLS()
write.xlsx()
但无法获得想要的结果。

r excel file-io
2个回答
7
投票

这是一个示例,其中

xlsx
包函数用于在同一张纸上写入5个不同的表:

library(xlsx)

### create a sample list
set.seed(123)
theList <- list()

theList$df1 <- data.frame(a=1:5,b=sample(c('X','Y','Z'),5,T))
theList$df2 <- data.frame(a=1:3,b=sample(c('X','Y','Z'),3,T),c=sample(c('A','B','C'),3,T))
theList$df3 <- data.frame(answer=42)
theList$df4 <- data.frame(x=1:2,y=sample(c('I','J','K'),2,T),z='M')
theList$df5 <- data.frame(m=1.2345,n='foo')
###


wb <- createWorkbook()
sheet <- createSheet(wb,"SheetNameHere")

currRow <- 1
for(i in 1:length(theList)){

  cs <- CellStyle(wb) + Font(wb, isBold=TRUE) + Border(position=c("BOTTOM", "LEFT", "TOP", "RIGHT"))

  addDataFrame(theList[[i]],
               sheet=sheet,
               startRow=currRow,
               row.names=FALSE,
               colnamesStyle=cs)

  currRow <- currRow + nrow(theList[[i]]) + 2 
}

saveWorkbook(wb,file = "myXlsx.xlsx")

结果:

Excel Snapshot


0
投票

这很简单,你只需要把你的清单交给

writexl::write_xlsx
:

dfs |> writexl::write_xlsx('path/somename.xlsx')

您也可以使用

rio
,请参阅:https://stackoverflow.com/a/73379697/21368856

我还有工具将目录中的 csv 文件复制到 xlsx 工作簿中:https://stackoverflow.com/a/78878484/21368856

© www.soinside.com 2019 - 2024. All rights reserved.