使用 r 包将多个表格导出到 word 文档 'flextable'
Exporting several tables to word documents using r package 'flextable'
我正在尝试导出两个 (flex)table
同一个word文档。这是我的:
df1 <- data.frame(a = 1:3, b = 1:3)
df2 <- data.frame(c = 11:13, d = 11:13)
library(flextable)
df1_ft <- regulartable(df1)
df2_ft <- regulartable(df2)
library(officer)
word_export <- read_docx()
word_export <- body_add_flextable(word_export, df1_ft)
word_export <- body_add_flextable(word_export, df2_ft)
print(word_export, 'try.docx')
然而,结果是包含两个 table 的单个 table。
知道如何一个接一个地添加到两个 table 吗?
你可以试试
library(flextable)
library(tidyverse)
library(officer)
# write function
write_word_table <- function(var, doc){
doc %>%
body_add_flextable(var) %>%
body_add_break() }
# list of tables and the doc
my_list <- list(df1_ft <- regulartable(df1),
df2_ft <- regulartable(df2))
my_doc <- read_docx()
# use walk (the invisible function of map) to include all tables in one doc
walk(my_list, write_word_table, my_doc)
print(my_doc, target = "c:/Users/tremmel/Desktop/Doc1.docx") %>% invisible()
这两个表正在一个接一个地输出到Word,由于它们之间没有换行符,因此它们显示为一个。最简单的解决方案是在它们之间放置一个空文本的段落:
word_export <- read_docx()
body_add_flextable(word_export, df1_ft)
body_add_par(word_export, value = "")
body_add_flextable(word_export, df2_ft)
print(word_export, 'try.docx')
您还可以看到,您不需要将每个 body_add_*
行的输出重复分配回您的 word_export 文件 - 每次调用都会直接更新 Word 文件。
我正在尝试导出两个 (flex)table 同一个word文档。这是我的:
df1 <- data.frame(a = 1:3, b = 1:3)
df2 <- data.frame(c = 11:13, d = 11:13)
library(flextable)
df1_ft <- regulartable(df1)
df2_ft <- regulartable(df2)
library(officer)
word_export <- read_docx()
word_export <- body_add_flextable(word_export, df1_ft)
word_export <- body_add_flextable(word_export, df2_ft)
print(word_export, 'try.docx')
然而,结果是包含两个 table 的单个 table。 知道如何一个接一个地添加到两个 table 吗?
你可以试试
library(flextable)
library(tidyverse)
library(officer)
# write function
write_word_table <- function(var, doc){
doc %>%
body_add_flextable(var) %>%
body_add_break() }
# list of tables and the doc
my_list <- list(df1_ft <- regulartable(df1),
df2_ft <- regulartable(df2))
my_doc <- read_docx()
# use walk (the invisible function of map) to include all tables in one doc
walk(my_list, write_word_table, my_doc)
print(my_doc, target = "c:/Users/tremmel/Desktop/Doc1.docx") %>% invisible()
这两个表正在一个接一个地输出到Word,由于它们之间没有换行符,因此它们显示为一个。最简单的解决方案是在它们之间放置一个空文本的段落:
word_export <- read_docx()
body_add_flextable(word_export, df1_ft)
body_add_par(word_export, value = "")
body_add_flextable(word_export, df2_ft)
print(word_export, 'try.docx')
您还可以看到,您不需要将每个 body_add_*
行的输出重复分配回您的 word_export 文件 - 每次调用都会直接更新 Word 文件。