add a flextable into a Word document.

body_add_flextable(
  x,
  value,
  align = NULL,
  pos = "after",
  split = NULL,
  topcaption = TRUE,
  keepnext = NULL
)

body_replace_flextable_at_bkm(
  x,
  bookmark,
  value,
  align = "center",
  split = FALSE
)

Arguments

x

an rdocx object

value

flextable object

align

left, center (default) or right.

pos

where to add the flextable relative to the cursor, one of "after", "before", "on" (end of line).

split

set to TRUE if you want to activate Word option 'Allow row to break across pages'.

topcaption

if TRUE caption is added before the table, if FALSE, caption is added after the table.

keepnext

default to FALSE, 'keep with next' binds the table to the first line of the next block (a paragraph or a table). It ensures no page break happens between the two blocks.

bookmark

bookmark id

body_replace_flextable_at_bkm

Use this function if you want to replace a paragraph containing a bookmark with a flextable. As a side effect, the bookmark will be lost.

Examples

library(officer)

# autonum for caption
autonum <- run_autonum(seq_id = "tab", bkm = "mtcars")

ftab <- flextable(head(mtcars))
ftab <- set_caption(ftab, caption = "mtcars data", autonum = autonum)
ftab <- autofit(ftab)
doc <- read_docx()
doc <- body_add_flextable(doc, value = ftab)
fileout <- tempfile(fileext = ".docx")
# fileout <- "test.docx" # uncomment to write in your working directory
print(doc, target = fileout)