我创建了以下文件列表:
require(writexl)
write_xlsx(mtcars, 'PQ_ele_com.xlsx')
dir = c('com', 'set', 'rit')
init = c('PQ', 'MG')
inpst = c('_ele_', '_mel_', '_col_')
for (i in dir) {
for (j in init) {
for (k in inpst){
write_xlsx(mtcars[3,],, paste0(j, k, i, '.xlsx'))
}
}
}
setwd("C:/Users/PC/Desktop/my_folder")
files = list.files("C:/Users/PC/Desktop/my_folder", recursive= FALSE, full.names= FALSE)
init = c('PQ', 'MG')
dir = c('com', 'set', 'rit')
files = list.files(recursive= FALSE, full.names= FALSE)
init = c('PQ', 'MG')
dir = c('com', 'set', 'rit')
list3 = NULL
for (j in init){
for (k in dir){
df=c()
for (i in files){
if(str_detect(i, pattern = j) & str_detect(i, pattern = k) == TRUE) {
df=rbind(df,read_excel(i))}
}
list3[[j]][[k]] = df
}
}
我想把所有用flextable
创建的表格保存在一个文件中。我试过这个解决方案,但它只能在不同的工作表上打印表格,并重复多次。我可以在其中做什么改变?即使用save_as_docx
,你还有其他建议吗?
library(flextable)
library(officer)
write_word_table <- function(var, doc){
doc %>%
body_add_flextable(var) %>%
body_add_break() }
my_doc <- read_docx()
lapply(list3, function(x) walk(x, write_word_table , my_doc))
print(my_doc, target = "C:/Users/PC/Desktop/D1.docx") %>% invisible()
谢谢
1条答案
按热度按时间qacovj5a1#
虽然我可能会使用
lapply
来创建数据集列表,但在导出时,我会使用for
循环,但您也可以使用例如Reduce
: