将命名的data.frames列表写入xlsx文件

时间:2011-10-25 15:20:26

标签: r io xls xlsx rjava

我尝试使用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文件提供了一个很好的界面,只需要最少的设置。我也对其他好的选择持开放态度。

2 个答案:

答案 0 :(得分:11)

首先创建Excel文件:

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

然后附加每个工作簿:

lapply(names(myList), function(x) write.xlsx(myList[[x]], 'output.xlsx', sheetName=x, append=TRUE))

答案 1 :(得分:3)

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