0

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

library(openxlsx)
library(writexl)

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

然后我想修改这个文件中的现有工作表。我使用以下问题的答案:如何使用 R 中的 Openxlsx 包修改 Excel 工作簿中的现有工作表?

wb <- loadWorkbook("example_modify_exceltab.xlsx")

然后我添加了一张带有数据“USarrests”的表格:

addWorksheet(wb, sheetName = "USArrests")
writeData(wb, sheet = "USArrests", USArrests, colNames = TRUE)

保存工作簿:

saveWorkbook(wb, "example_modify_exceltab1.xlsx", overwrite = TRUE)

现在的问题是文件中的数据example_modify_exceltab.xlsx有列名,而'example_modify_exceltab1.xlsx'中的列名是空的。我想实现这些工作表iris并且mtcars仍然具有与example_modify_exceltab.xlsx. 我如何使用 实现这一目标openxlsx

4

1 回答 1

1

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

但是您可以使用 openxlsx 包中的 write.xls 并且它工作正常,只需更改此行:

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

至:

openxlsx::write.xlsx(list(iris = iris, mtcars = mtcars), "example_modify_exceltab.xlsx")

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

于 2021-04-19T12:14:53.860 回答