如何使用R中的Openxlsx包修改Excel工作簿中的现有工作表?

时间:2015-12-09 06:46:07

标签: r excel openxlsx

我正在使用" openxlsx"用于读取和写入excel文件的包。我有一个固定文件,其中包含一张名为" Data"由其他表中的公式使用。我想更新此数据表而不接触另一个。 我正在尝试以下代码:

write.xlsx(x = Rev_4, file = "Revenue.xlsx", sheetName="Data")

但是这会删除excel文件,并在" Data"中创建一个只包含新数据的新文件。所有其他内容都被删除。任何建议?

2 个答案:

答案 0 :(得分:14)

试试这个:

wb <- loadWorkbook("Revenue.xlsx")
writeData(wb, sheet = "Data", Rev_4, colNames = F)
saveWorkbook(wb,"Revenue.xlsx",overwrite = T)

您需要加载完整的工作簿,然后修改其数据,然后将其保存到磁盘。使用writeData,您还可以指定起始行和列。您还可以在保存到磁盘之前修改其他部分。

答案 1 :(得分:0)

我找到了这个包裹。它取决于openxlsx,有助于在xlsx文件中插入许多图纸。也许更容易:

Package documentation

# However, be careful, the function xlsx2dfs assumes
# that all sheets contain simple tables. If that is not the case,
# use the accepted answer!
dfs <- xlsx2dfs("Revenue.xlsx") # all sheets of file as list of dfs
dfs["Data"] <- Rev_4   # replace df of sheet "Data" by updated df Rev_4
dfs2xlsx(dfs, "Revenue.xlsx") # this overwrites the existing file! cave!