Principally used for export (export_as_docx()
), this function produces a flextable
from an rtables
table. If theme = NULL
, rtables
-like style will be used. Otherwise,
theme_docx_default()
will produce a .docx
-friendly table.
Usage
tt_to_flextable(
tt,
theme = theme_docx_default(tt),
border = flextable::fp_border_default(width = 0.5),
indent_size = NULL,
titles_as_header = TRUE,
footers_as_text = FALSE,
counts_in_newline = FALSE,
paginate = FALSE,
lpp = NULL,
cpp = NULL,
...,
colwidths = propose_column_widths(matrix_form(tt, indent_rownames = TRUE)),
tf_wrap = !is.null(cpp),
max_width = cpp,
total_width = 10
)
theme_docx_default(
tt = NULL,
font = "Arial",
font_size = 9,
bold = c("header", "content_rows", "label_rows"),
bold_manual = NULL,
border = flextable::fp_border_default(width = 0.5)
)
Arguments
- tt
(
TableTree
or related class)
aTableTree
object representing a populated table.- theme
(
function
orNULL
)
A theme function that is designed internally as a function of aflextable
object to change its layout and style. IfNULL
, it will produce a table similar tortables
default. Defaults totheme_docx_default(tt)
.- border
(
officer
border object)
defaults toofficer::fp_border(width = 0.5)
.- indent_size
(
integer(1)
)
ifNULL
, the default indent size of the table (seeformatters::matrix_form()
indent_size
) is used. To work withdocx
, any size is multiplied by 2 mm (5.67 pt) by default.- titles_as_header
(
flag
)
defaults toTRUE
fortt_to_flextable()
, so the table is self-contained as it makes additional header rows forformatters::main_title()
string andformatters::subtitles()
character vector (one per element).FALSE
is suggested forexport_as_docx()
. This adds titles and subtitles as a text paragraph above the table. The same style is applied.- footers_as_text
(
flag
)
defaults toFALSE
fortt_to_flextable()
, so the table is self-contained with theflextable
definition of footnotes.TRUE
is used forexport_as_docx()
to add the footers as a new paragraph after the table. The same style is applied, but with a smaller font.- counts_in_newline
(
flag
)
defaults toFALSE
. Inrtables
text printing (formatters::toString()
), the column counts, i.e.(N=xx)
, are always on a new line. Fordocx
exports it could be necessary to print it on the same line.- paginate
(
flag
)
when exporting.docx
documents usingexport_as_docx
, we suggest relying on the Microsoft Word pagination system. IfTRUE
, this option splitstt
into different "pages" as multipleflextables
. Cooperation between the two mechanisms is not guaranteed. Defaults toFALSE
.- lpp
(
numeric(1)
)
maximum lines per page including (re)printed header and context rows.- cpp
(
numeric(1)
orNULL
)
width (in characters) of the pages for horizontal pagination.NA
(the default) indicatescpp
should be inferred from the page size;NULL
indicates no horizontal pagination should be done regardless of page size.- ...
additional parameters passed to methods or tabulation functions.
- colwidths
(
numeric
)
a vector of column widths for use in vertical pagination.- tf_wrap
(
flag
)
whether the text for title, subtitles, and footnotes should be wrapped.- max_width
(
integer(1)
,string
orNULL
)
width that title and footer (including footnotes) materials should be word-wrapped to. IfNULL
, it is set to the current print width of the session (getOption("width")
). If set to"auto"
, the width of the table (plus any table inset) is used. Parameter is ignored iftf_wrap = FALSE
.- total_width
(
numeric(1)
)
total width (in inches) for the resulting flextable(s). Defaults to 10.- font
(
string
)
defaults to"Arial"
. If the font is not available,flextable
default is used.- font_size
(
integer(1)
)
font size. Defaults to 9.- bold
(
character
)
parts of the table text that should be in bold. Can be any combination ofc("header", "content_rows", "label_rows")
. The first one renders all column names bold (nottopleft
content). The second and third option useformatters::make_row_df()
to render content or/and label rows as bold.- bold_manual
(named
list
orNULL
)
list of index lists. See example for needed structure. Accepted groupings/names arec("header", "body")
.
Functions
theme_docx_default()
: Main theme function forexport_as_docx()
Examples
analysisfun <- function(x, ...) {
in_rows(
row1 = 5,
row2 = c(1, 2),
.row_footnotes = list(row1 = "row 1 - row footnote"),
.cell_footnotes = list(row2 = "row 2 - cell footnote")
)
}
lyt <- basic_table(
title = "Title says Whaaaat", subtitles = "Oh, ok.",
main_footer = "ha HA! Footer!"
) %>%
split_cols_by("ARM") %>%
analyze("AGE", afun = analysisfun)
tbl <- build_table(lyt, ex_adsl)
# rtables style
tt_to_flextable(tbl, theme = NULL)
Title says Whaaaat
Oh, ok.
A: Drug X
B: Placebo
C: Combination
row1 {1}
5
5
5
row2
1, 2 {2}
1, 2 {2}
1, 2 {2}
{1} - row 1 - row footnote
{2} - row 2 - cell footnote
ha HA! Footer!
tt_to_flextable(tbl, theme = theme_docx_default(tbl, font_size = 7))
Title says Whaaaat
Oh, ok.
A: Drug X
B: Placebo
C: Combination
row1 {1}
5
5
5
row2
1, 2 {2}
1, 2 {2}
1, 2 {2}
{1} - row 1 - row footnote
{2} - row 2 - cell footnote
ha HA! Footer!
# Custom theme
special_bold <- list(
"header" = list("i" = 1, "j" = c(1, 3)),
"body" = list("i" = c(1, 2), "j" = 1)
)
custom_theme <- theme_docx_default(tbl,
font_size = 10,
font = "Brush Script MT",
border = flextable::fp_border_default(color = "pink", width = 2),
bold = NULL,
bold_manual = special_bold
)
tt_to_flextable(tbl,
border = flextable::fp_border_default(color = "pink", width = 2),
theme = custom_theme
)
Title says Whaaaat
Oh, ok.
A: Drug X
B: Placebo
C: Combination
row1 {1}
5
5
5
row2
1, 2 {2}
1, 2 {2}
1, 2 {2}
{1} - row 1 - row footnote
{2} - row 2 - cell footnote
ha HA! Footer!