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
(
TableTreeor related class)
aTableTreeobject representing a populated table.- theme
(
functionorNULL)
A theme function that is designed internally as a function of aflextableobject to change its layout and style. IfNULL, it will produce a table similar tortablesdefault. Defaults totheme_docx_default(tt).- border
(
officerborder 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 toTRUEfortt_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).FALSEis 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 toFALSEfortt_to_flextable(), so the table is self-contained with theflextabledefinition of footnotes.TRUEis 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. Inrtablestext printing (formatters::toString()), the column counts, i.e.(N=xx), are always on a new line. Fordocxexports it could be necessary to print it on the same line.- paginate
(
flag)
when exporting.docxdocuments usingexport_as_docx, we suggest relying on the Microsoft Word pagination system. IfTRUE, this option splitsttinto 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) indicatescppshould be inferred from the page size;NULLindicates 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),stringorNULL)
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,flextabledefault 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 (nottopleftcontent). The second and third option useformatters::make_row_df()to render content or/and label rows as bold.- bold_manual
(named
listorNULL)
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!
