![](/img/trans.png)
[英]How do you move an Excel worksheet from one workbook into another using openxlsx in R?
[英]Add one excel worksheet from one file to another workbook in R
所以我有一个工作簿 wb,其中有一个名为“Ice Data”的工作表我有一个包含 5 个工作表的 excel 文件“path/test.xlsm”,但我只想克隆第一个名为“Pasta”的工作表并将其添加到另一个工作簿 wb .
我不知道该怎么做。 我已经查找了 openxlsx 但我似乎无法管理。
谢谢
library(openxlsx)
## Open the first workbook, add a new sheet called Pasta
## and get its sheet number.
wb1 = loadWorkbook("test1.xlsx")
addWorksheet(wb1, "Pasta")
TargetSheet = grep("^Pasta$", names(wb1))[[1]]
## open the second workbook, find and read the Pasta sheet.
wb2 = loadWorkbook("test2.xlsx")
SourceSheet = grep("^Pasta$", names(wb2))[[1]]
Sheet2Data = readWorkbook(wb2, SourceSheet)
## Write the data to the new sheet in the first workbook and save.
writeData(wb1, TargetSheet, Sheet2Data)
saveWorkbook(wb1, "Test3.xlsx")
与 G5W 类似,但您可以完全留在 openxlsx 中并使用 openxlsx 包中的 getSheetNames 函数,并避免在环境中创建额外的对象。 此外,如果您有像我这样的同事喜欢用几乎相同的名称命名工作表,“grep”ping 模式可能并不总能产生您想要的结果。
您最初将有两个工作簿:1) 称为 test.xlsm 的 Ice Data 和 2) 包含工作表“Pasta”上的 Pasta 数据的其他文件,此后称为 Pasta.xlsx。
首先获取 pasta.xlsx 的工作表名称/位置:
library(openxlsx)
getSheetNames("path/pasta.xlsx")
[1] "Pasta" "Not pasta" "maybe pasta" "salad"
这将列出文件中可以按位置或名称索引的所有工作表名称。 因此,如果您有标签:Pasta、Not Pasta、也许 Pasta 和“沙拉”,而您只想要第一个“Pasta”
您只能通过 index 在该表中阅读:
pb <- readWorkbook("path/pasta.xlsx", sheet = 1)
或姓名
pb <- readWorkbook("path/pasta.xlsx", sheet = "Pasta")
现在你只有那张纸了。 加载 test.xlsm 文件,然后添加一张空白表,在本例中为简单起见将其称为“Pasta”。 这是最终将写入 Pasta 数据的地方。
wb <- loadWorkbook("path/test.xlsm")
addWorksheet(wb, "Pasta")
将面食数据 pb 写入名为 wb 的 test.xlsm 文件中的空白面食工作表。
writeData(wb, sheet = "Pasta", pb)
#Confirm it looks good
openXL(wb)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.