0

为了帮助我需要做一些常规的标签制作和打印,我正在寻找一个脚本,允许我输入一系列序列号(一些带有字符串标识符),我可以以特定格式导出到 Excel。例如,如果我输入了“1:16”范围,我正在 Excel 中寻找一个输出,就像:

在此处输入图像描述

对于每个唯一的序列号(即 1 到 16),前五行必须标有“U”,接下来的三行标有“F”,最后两行必须是单独的数字。最终导出的矩阵将为 n 列 x 21 行,其中 n 将根据我输入的数字范围而有所不同。

我的主要问题是写入 Excel。如上例所示,我无法找到如何自定义此输出并写入特定行和列。由于我在公司安全工作站上工作,因此我仅限于“openxlsx”。这是我到目前为止所拥有的:

Unfiltered <- rep (1 : 16, each = 5)
UnfilteredLabel <- paste (Unfiltered, "U")
UnfilteredLabel

Filtered <- rep (1 : 16, each = 3)
FilteredLabel <- paste (Filtered, "F")
FilteredLabel

Number <- rep (1 : 16, each = 2)
NoLabel <- paste (Number, "")
NoLabel

install.packages("openxlsx")
library(openxlsx)

write.xlsx(UnfilteredLabel, 'test.xlsx', append = TRUE)
write.xlsx(FilteredLabel, 'test.xlsx', append = TRUE)
write.xlsx(NoLabel, 'test.xlsx', append = TRUE)

非常感谢您的任何帮助,在此先感谢!

4

1 回答 1

0

不是最干净的代码。试试这个:

aa<-data.frame(matrix(c(1:16), byrow=F, ncol=4))
mm<-lapply(aa,function(x){
  ac<-mapply(rep,list(x), list(5,3,2))
  xy<-mapply(paste,ac,list("U","F",""), sep="")  
  xy<-matrix(unlist(xy), byrow=T,ncol=4)
})
fst<-do.call("rbind", list(mm[[1]],"",mm[[2]]))
snd<-do.call("rbind", list(mm[[3]],"",mm[[4]]))
mm<-do.call("cbind", list(fst,"",snd))
openxlsx::write.xlsx(mm, 'test.xlsx', append = TRUE)
于 2018-01-22T22:08:15.350 回答