如何用R将Excel工作表从一个文件复制到另一个现有文件?
使用openxlsx跨工作簿复制工作表的方法
cloneWorksheet()确实仅支持同一工作簿内的工作表克隆,要实现跨工作簿复制且保留目标工作簿原有内容,可通过以下步骤操作:
具体实现步骤
- 加载openxlsx包
library(openxlsx) - 加载源工作簿与目标工作簿
用loadWorkbook()读取已存在的Excel文件,而非新建工作簿:# 加载包含待复制工作表的源文件 source_wb <- loadWorkbook("你的源文件路径.xlsx") # 加载需要添加工作表的目标文件 target_wb <- loadWorkbook("你的目标文件路径.xlsx") - 跨工作簿复制工作表
使用copyWorksheets()函数,它能完整保留源工作表的格式、公式、样式等内容:
若需复制多个工作表,将# 将源工作簿中指定工作表复制到目标工作簿,可自定义新工作表名称 copyWorksheets(source_wb, target_wb, sheet = "源工作表名称", newSheetName = "复制后的工作表名称")sheet参数改为向量即可,例如:sheet = c("工作表1", "工作表2")。 - 保存更新后的目标工作簿
这里的saveWorkbook(target_wb, "你的目标文件路径.xlsx", overwrite = TRUE)overwrite = TRUE仅会覆盖原目标文件,但不会删除其中原有工作表,仅添加新复制的内容。
注意事项
- 操作时确保源文件与目标文件未被其他程序占用,否则会触发读写错误。
copyWorksheets()是openxlsx专为跨工作簿复制设计的函数,比手动读取数据再写入更能还原源工作表的完整属性。
内容的提问来源于stack exchange,提问作者Karen Liu
相关产品推荐
相关产品推荐

