以良好的格式将列表从R导出到excel

时间:2019-05-10 14:20:42

标签: r excel

我正在尝试使用库(xlsx)以可读格式将R中的某些数据写入excel。

我的数据集的格式为:

tbl <- list("some_name"=head(mtcars),"some_name2"=head(iris))

我想将此表编写为excel,列表中的每个项目都已标识,数据紧挨该项目。例如。 excel文件应该看起来像

"some_name" in cell A1

paste the dataframe head(mtcars) in cell A3

"some_name2" in cell A11

paste the dataframe head(iris) in cell A13

或类似的内容,例如将每个项目粘贴到新的工作表中。

使用

write.xlsx(tbl,"output.xlsx")

将正确输出它,但是其格式不可读。

任何帮助都会很棒

2 个答案:

答案 0 :(得分:0)

以下代码创建一个具有多张工作表的xlsx文件,每个文件都包含一个列表名称(工作表名称和标题)以及标题下方的数据框。您可以根据需要对其进行修改。

require(xlsx)

ls2xlsx <- function(x, wb){
  for(i in 1:length(x)){
    sh <- createSheet(wb, names(x[i]))
    cl_title <- createCell(createRow(sh, 1), 1)
    addDataFrame(x[i], sh, startRow = 2, startColumn = 1)
    setCellValue(cl_title[[1, 1]], names(x[i]))
  }
}

tbl <- list("some_name" = head(mtcars),"some_name2"=head(iris))
wb <- createWorkbook()
ls2xlsx(tbl, wb)
saveWorkbook(wb, 'test.xlsx')


答案 1 :(得分:0)

以下函数将数据帧列表写入public class ProductEntity { public List<Products> products { get; set; } } public class Products { public string id { get; set; } public string name { get; set; } public string pricePerUnit { get; set; } } 文件。
它有两种模式,由参数.xlsx给出。

  1. beside是默认设置。它只写一张纸,数据框名称在第一行,然后是一个空单元格,然后是数据框。并针对所有并行编写的数据帧重复此操作。
  2. beside = TRUE每张纸写入一个数据帧。工作表的名称是数据框名称。如果列表成员没有名称,则该名称由参数beside = FALSE给出。

sheetNamePrefix文件写在参数.xlsx给定的目录中。

file