我有一个包含 5 个不同长度的数据帧的列表。我想将这些数据框写入同一个 Excel 工作表中。
我已经尝试过使用
WriteXLS()
和 write.xlsx()
但无法获得想要的结果。
这是一个示例,其中
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")
结果:
这很简单,你只需要把你的清单交给
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