首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用openxlsx (具有相同布局)修改Excel中的现有工作表?

如何使用openxlsx (具有相同布局)修改Excel中的现有工作表?
EN

Stack Overflow用户
提问于 2021-04-19 18:31:57
回答 1查看 55关注 0票数 0

假设我创建了以下Excel文件:

代码语言:javascript
复制
library(openxlsx)
library(writexl)

writexl::write_xlsx(list(iris = iris, mtcars = mtcars), "example_modify_exceltab.xlsx")

然后,我想要修改此文件中现有的工作表。我使用以下问题的答案:How do I modify an existing a sheet in an Excel Workbook using Openxlsx package in R?

代码语言:javascript
复制
wb <- loadWorkbook("example_modify_exceltab.xlsx")

然后我添加了一个包含数据‘USArrests’的工作表:

代码语言:javascript
复制
addWorksheet(wb, sheetName = "USArrests")
writeData(wb, sheet = "USArrests", USArrests, colNames = TRUE)

保存工作簿:

代码语言:javascript
复制
saveWorkbook(wb, "example_modify_exceltab1.xlsx", overwrite = TRUE)

现在的问题是文件example_modify_exceltab.xlsx中的数据有列名,而'example_modify_exceltab1.xlsx‘中的列名是空的。我希望实现工作表irismtcars仍然具有与example_modify_exceltab.xlsx中相同的列名。如何使用openxlsx实现这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-19 20:14:54

这似乎与两个包一起使用有关,即使您在添加新工作表之前保存,标题也会丢失。

但是你可以从openxlsx包中使用write.xls,它工作得很好,只需更改这一行:

代码语言:javascript
复制
writexl::write_xlsx(list(iris = iris, mtcars = mtcars), "example_modify_exceltab.xlsx")

至:

代码语言:javascript
复制
openxlsx::write.xlsx(list(iris = iris, mtcars = mtcars), "example_modify_exceltab.xlsx")

并且您的脚本将按预期运行

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67160308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档