gpt4 book ai didi

r - 在 Excel 中复制具有格式的工作表

转载 作者:行者123 更新时间:2023-12-05 07:29:23 26 4
gpt4 key购买 nike

您好,这个问题是出于好奇,希望在将数据从 R 导出到 Excel 时更广泛地使用 xlsx 包。我只是想创建一个包含所有格式的现有工作表的精确副本。我可以设法复制值,但无法复制样式。我也很好奇是否有另一种方法可以直接复制工作表。

不幸的是,我没有数据源文件,所以这是我的 MWE 数据源的图片。甚至可以从现有表格中提取样式并将它们粘贴到副本中吗?

请注意,我无法使用 openxlsx 包,因为我无法在我的计算机上安装 rtools

enter image description here

library(xlsx)
files<-"Test.xlsx"
wb<-xlsx::loadWorkbook(files)
createSheet(wb, sheetName = "copy")
# get values and styles from original sheet
sheets <- getSheets(wb)
rows <- getRows(sheets[[1]]) # get rows
cells <- getCells(rows)
values<-lapply(cells, getCellValue)
styles<-lapply(cells, getCellStyle)
#Create new rows and cells
rows.new <- createRow(sheets[[4]],1:length(rows)) # get rows
cells.new <- createCell(rows.new,1:2)
#set cell values, but not working for styles
mapply(setCellValue,cells.new,matrix(unlist(values), nrow=3, ncol=2,byrow=TRUE))
mapply(setCellStyle,cells.new,matrix(unlist(styles), nrow=3, ncol=2,byrow=TRUE))
#save workbook
saveWorkbook(wb, file=files)

最佳答案

您可以使用 RDCOMClient R 包复制 Excel 工作表。这是一个例子:

library(RDCOMClient)
path_Excel_File_Output <- "D:\\output.xlsx"
path_Excel_File1 <- "D:\\file1.xlsx"
path_Excel_File2 <- "D:\\file2.xlsx"

xlApp <- COMCreate("Excel.Application")
xlWbk1 <- xlApp$Workbooks()$Open(path_Excel_File1)
xlWbk2 <- xlApp$Workbooks()$Open(path_Excel_File2)

# Copy one sheet after another ...
xlWbk1$Worksheets(1)$Copy(after = xlWbk2$Worksheets(1))
xlWbk2$SaveAs(path_Excel_File_Output)
xlWbk1$Close()
xlWbk2$Close()
xlApp$Quit()

关于r - 在 Excel 中复制具有格式的工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52831134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com