在Excel中具有格式的重复工作表

时间:2018-10-16 08:29:26

标签: r excel xlsx

您好,这个问题是由好奇心驱使的,以便在将数据从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)

0 个答案:

没有答案