2014-12-13 70 views
0

我有一個包含5個不同長度的數據幀的列表。我想在同一張Excel表格中寫入這些數據框。在r中寫一個列表到excel文件

我已經嘗試使用WriteXLS()write.xlsx(),但無法獲得所需的結果。

回答

4

在此處,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

非常感謝您用於詳細的代碼。我試過這段代碼,但是當我使用addDataFrame函數時,我得到了一個java異常錯誤。 java.lang.NoSuchMethodException:沒有與給定參數匹配的構造函數。有什麼建議麼? – TUSHAr 2014-12-27 06:27:32

+0

我可能會做很多事情......你使用的是哪個版本的Java和R?是xlsx包的最後一個版本嗎?發送完整的異常信息會有幫助,你可以發佈嗎? – digEmAll 2014-12-27 12:43:12

+0

我已經想通了。之前我在列表中使用data.frames。它適用於此。然而,我不知不覺地嘗試這個解決方案,因爲它給了我這個錯誤。謝謝你的幫助。 – TUSHAr 2014-12-28 19:06:00

相關問題