繁体   English   中英

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

[英]How do I modify an existing a sheet in an Excel Workbook using Openxlsx package in R?

我正在使用“openxlsx”包来读取和写入 excel 文件。 我有一个固定文件,其中包含一个名为“数据”的工作表,该工作表由其他工作表中的公式使用。 我想更新这个数据表而不触及另一个。 我正在尝试以下代码:

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

但这会擦除 excel 文件并创建一个新文件,其中仅包含“数据”表中的新数据,而其他所有文件都被删除。 有什么建议吗?

尝试这个:

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

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

我找到了这个包。 它依赖于openxlsx并有助于在 xlsx 文件中插入许多工作表。 也许它更容易:

包文档

library(xlsx2dfs)
# 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!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM