4

我尝试使用xlsx包将命名数据框列表保存到 xlsx 文件中。列表中的数据框都已命名,但如果它也适用于列表中未命名的元素,那就太好了。

这是我写的函数:

toXLS <- function(myList,myFile) {

    #Initialize output workbook
    require(xlsx)
    wb <- createWorkbook()
    for (name in names(myList)) {
        createSheet(wb, sheetName=name)
    }
    
    #Write blank workbook to file
    saveWorkbook(wb, myFile)

    #Write output data to saved workbook
    for (name in names(myList)) {
        write.xlsx(myList[[name]], myFile, sheetName=name)
    }
}

myList <- list(a=data.frame(1,2,3),b=data.frame('a','b','c'),d=data.frame('01-01-1900'))
toXLS(myList,paste(getwd(),'/output.xlsx',sep=''))

它工作正常,但每次我调用时都会覆盖输出工作簿write.xlsx。如何在工作簿中将 data.frame 作为工作表插入?

我没有与 xlsx 包结婚,但它似乎为 excel 文件提供了一个很好的界面,所需的设置最少。我也愿意接受其他好的选择。

4

2 回答 2

13

首先创建Excel文件:

wb <- createWorkbook()
saveWorkbook(wb, 'output.xlsx')

然后附加每个工作簿:

lapply(names(myList), function(x) write.xlsx(myList[[x]], 'output.xlsx', sheetName=x, append=TRUE))
于 2011-10-25T15:34:37.517 回答
3

append = TRUE在对 的调用中使用write.xlsx

于 2011-10-25T15:30:52.187 回答