【问题标题】:Write data into a specific workbook sheet将数据写入特定的工作簿表
【发布时间】:2013-03-01 05:37:09
【问题描述】:

我有一个数据框,例如

a=1:10 
b=31:40
c=data.frame(a=a,b=b)

我需要将此数据框写入特定的 Excel 工作表(“Sheet1”)。

我现在使用的是 WriteXLS,但是这个函数总是会覆盖整个 excel 文件,因此会删除其他工作表。 如何在不覆盖以前条目的情况下追加到工作表?

【问题讨论】:

  • 上面链接的问题在技术上是关于读取而不是写入 Excel 文件,但使用的工具是相同的。
  • 我从特定工作表读取并写入 excel 没有问题。但是在 excel 中写入特定工作表让我感到困惑。
  • writeWorksheetXLConnect 包中听起来好像可以解决问题
  • 这正是我向您指出允许您这样做的工具的原因。

标签: r excel


【解决方案1】:

这将在现有 Excel 工作簿中添加一个新的命名工作表,而不更改现有工作表:

# create data in R
a = 1:10 
b = 31:40
c0 = data.frame(a=a,b=b)

#  write data object 'c0' to existing Excel file 
# 'Book1.xlsx' into a new sheet called 'Sheet1'
library(XLConnect)
writeWorksheetToFile(file = "C:/.../Book1.xlsx", data = c0, sheet = "Sheet1")

请注意,如果工作簿已经有一个Sheet1,那么这个函数会默默地覆盖它。因此,您需要确保工作表名称是唯一的。

【讨论】:

    【解决方案2】:

    试试 xlsx 包。你有 write.xlsx() 函数,它允许你指定一个名字表,你可以完成一个现有的 excel。

    【讨论】:

      【解决方案3】:

      您可以通过以下方式简单地写入现有 Excel 文件的新工作表,而无需修改现有工作表或任何其他信息:

      library(xlsx)
      a=1:10 
      b=31:40
      c=data.frame(a=a,b=b)
      
      write.xlsx(c, "existing_Excel_file.xlsx", sheetName="New sheet name",  append=TRUE)
      

      记得将 write.xlsx 的 append 参数设置为 TRUE 并确保您正在写入的 Excel 文件位于您当前的工作目录中。

      【讨论】:

        猜你喜欢
        • 2018-01-25
        • 2021-05-11
        • 2017-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-26
        • 1970-01-01
        相关资源
        最近更新 更多