fix_border_issues
function is now useless for users, as it is now
called automatically before printing.flextable_to_rmd()
issue with images in pdf (issue #651)flextable_to_rmd()
issue with local chunk eval
option (issue #631)proc_freq
can now display only the table percentages without the count
using include.table_count = FALSE
.pagedown >= 0.20.2
headers_flextable_at_bkm()
and footers_flextable_at_bkm()
are defunct.flextable_to_rmd()
is now using knit_child()
for safer usage from for
loops or if
statements.save_as_image()
and ph_with.flextable()
.as_raster()
since gen_grob()
is easier to use and render
nicer.align()
, the default argument value for align
is now
"left"
, rather than c("left", "center", "right", "justify")
. This
returns the default value to how it was in older versions of {flextable}.
align()
, use of the old default align
argument could cause an
error if the number of columns being adjusted was not a multiple of 4.align
had to be a single value, when
it could actually accept multiple values. This is why a default value of
c("left", "center", "right", "justify")
, was problematic. This
documentation has now been updated and new examples included in the
documentation.align
argument will now apply left alignment to all
columns in the body.path
argument now has a signature of part = c("body", "header", "footer", "all")
, but because only a single value can be selected, it
will pick "body"
by default, as before.lollipop()
since it produces (ugly) results that can be replaced
by nice results with gg_chunk()
or grid_chunk()
.as_image()
when the table contains no text.align()
issue with recycling and update documentation
that was wrong about argument align
that is vectorized over
columns.tab_settings()
to set tabulation marks configuration
for Word and RTF. It works with officer::fp_tabs()
.fmt_signif_after_zero()
to round significant figures after zeros.summarizor()
don't stop anymore if table only contain discrete columns.as_flextable.data.frame()
supports 'data.table'footnote()
handle undefined ref_symbols
argumentdelete_rows()
does not delete rows if the row selection is emptygen_grob()
alignments when wrapping textgen_grob()
when cells are vertically mergedset_caption()
can have no bookmark and have
autonumber used together.tabcolsep
is now set to 2.set_formatter_type()
.fmt_2stats()
so that it uses global flextable settings,
i.e. digits, etc.set_table_properties(opts_pdf = list(footer_repeat = TRUE))
.as_chunk()
ph_with.flextable()
formats widths and heights correctly.delete_columns()
and delete_rows()
to let users delete rows or columns.save_as_image()
now supports svg export with 'svglite'.summarizor()
function has been enhanced to offer three new options:
by
argument meaning 'no grouping,'as_flextable.data.frame()
always shows the number of rows even if less than 10
(because I need it!).as_flextable.lm()
, as_flextable.gam()
,
as_flextable.glm()
, as_flextable.merMod()
and as_flextable.htest()
now respect the global value of getOption("show.signif.stars")
.add.random
in as_flextable.merMod()
to let add or not
random effects in the final table.max_iter
of function fit_to_width
is not
ignored anymore.part
to .part
so that
column named part
can be used.dim_pretty()
returns correct numbers when not 'inches'as_flextable.table()
now propagates ...
as expectedset_table_properties(opts_pdf = list(caption_repeat = FALSE))
.as_flextable()
now works on tabular objects and R < 4.1
.to_html(type = "img")
now use the correct width and height1.4
.as_flextable.tabular()
now generate tabulated content only if the sub group
contains more than a single row. When possible, row titles are tabulated.footers_flextable_at_bkm
and headers_flextable_at_bkm
are deprecated.
Instead, we recommend using the prop_section()
and block_list()
functions from the officer
package as alternative solutions. These functions provide more reliable and flexible options for managing footers and headers.keepnext
and ft.keepnext
are defunct, they are replaced
by function paginate()
that enable nice pagination of tables across pages
or keep_with_next()
to get total control over rows pagination.set_flextable_defaults()
gains parameter pct_digits
(number of digits for percentages) that will be used in relevant
functions (only proc_freq()
for now).as_flextable.table()
.fmt_dbl()
, fmt_int()
and fmt_pct()
.paginate()
type
is now possible when using tabulator()
.save_as_html()
ugly default title.set_header_labels()
from a simple
un-named vector.set_formatter()
now accepts single function to
be applied to all columns.gdtools::register_gfont()
.save_as_html()
: use rmarkdown and add google fonts
if possible (See gdtools::register_gfont()
).as_flextable.tabular(spread_first_col=TRUE)
In short:
tables::tabular()
: "Computes a table of summary statistics, cross-classified by various variables"officer::rtf_add()
.tables::tabular()
to flextable with new
function as_flextable.tabular()
.to_html.flextable()
to make easy embedding of
flextable results in HTML (with 'ggiraph' for example).border.width
(see ?set_flextable_defaults()
)
and set its default value to .75, this setting is
used in theme functions. The old default value was hard coded
to 1 and can be defined during the whole R session with
set_flextable_defaults(border.width = 1)
.officer_url_encode()
to encode URL in office files.knit_print.flextable()
and related functions.headers_flextable_at_bkm()
and footers_flextable_at_bkm()
0.8.4
.body_add_flextable()
.expand_single
in as_flextable.tabulator()
. If FALSE
,
groups with only one row will not be expanded with a title row.labels
of labelizor()
now support functions in
addition to named vectors.as.character()
now returns the HTML string of the tableas_flextable
for data.frame using df_printer()
function
implementation.expand_single
in as_grouped_data()
. If FALSE, groups with only one
row will not be expanded with a title row.fmt_avg_dev()
, fmt_header_n()
, fmt_n_percent()
and renaming of fmt_2stats()
to fmt_summarizor()
to help working with tabulator()
. tabulator()
has also new
internal values that allow N=xxx notes and automatic labels.set_table_properties()
is now the recommanded way to set
arguments related to format options and alignment in a document. It is
supposed to replace "knitr" chunk options ft.align
, ft.split
,
ft.keepnext
, ft.tabcolsep
, ft.arraystretch
, ft.latex.float
,
ft.shadow
, fonts_ignore
although they are all still
supported.
This allows less interaction with the 'R Markdown' or 'Quarto'
eco-system and let to define it globally with set_flextable_defaults()
.set_table_properties()
and
providing a scroll value for argument opts_html
:
opts_html = list(scroll = list(height = "500px",freeze_first_column = TRUE))
.grid_chunk()
to let users add grid graphicsadd_header_row()
, add_footer_row()
, add_body_row()
,
add_header_lines()
and add_footer_lines()
now supports formatted paragraph made with as_paragraph()
.as_paragraph()
summarizor()
can now be transformed directly as a flextable
with method as_flextable()
.body_add_flextable()
prepend_chunks()
line_spacing()
as it is expected to be a ratioft.keepnext
now default to FALSE as lot of users had issues
with this option.xtable_to_flextable()
is removed (use as_flextable()
)gen_grob()
.labelizor()
is a new function to help change text by labels.fp_par()
) in captions with set_caption()
.as_paragraph()
set_table_properties()
or setting values to knitr chunk options tab.alt.title
and tab.alt.description
.set_caption()
.
The alignment of the paragraph can be different from the alignment of the table
with the argument align_with_table=FALSE
.theme_apa
(@rempsyc #426)as_flextable.tabulator()
gains an argument spread_first_col
to enable
spreading of the first column of the table as a line separator.save_as_docx()
to avoid Word confusionfortify_width()
calculationas_flextable.tabulator()
gained an argument label_rows
used for
labels to display in the first column names, i.e. the row column names.shift_table()
to produce Shift Tables used used in
clinical trial analysis ready to be used by tabulator()
.as_image()
don't need anymore parameters width
and
height
if package 'magick' is available.plot.flextable
now default to grid Graphics. It produce a plot object
that can be used with packages 'ggplot2', 'patchwork' and 'cowplot'. The raster
version made with 'webshot' and 'magick' pachages is still available, use plot(..., method = "webshot")
.add_footer_lines()
instead.as_flextable()
has now methods for
lm, glm, models from package 'lme' and 'lme4',
htest (t.test, chisq.test, ...), gam, kmeans and pam.use_model_printer()
to set model automatic
printing as a flextable in an R Markdown document.add_body_row()
to add a row in the body part
with eventually merged/spanned columns.tabulator_colnames()
to get column names
of a tabulator
object.prepend_chunks()
to prepend chunks of content
in flextable cells as with as_paragraph()
but without
replacing the whole content.as_word_field()
to let add 'Word' computed
values into a flextable, as as_word_field(x = "Page")
for a page number.separate_header()
to Separate collapsed
colnames into multiple rows.autofit()
and dim_pretty()
now support newlines.autofit()
and dim_pretty()
now have an argument hspans
to help specify how horizontally spanned cells should affect
the results.ft.latex.float
, supported values are 'none'
(the default value), 'float', 'wrap-r', 'wrap-l',
'wrap-i' and 'wrap-o'.ft.htmlscroll = FALSE
.tabulator()
can display any columns before and
after the columns of displayed aggregations.i
, j
and part
at the end of the function arguments, after the ...
.supp_data
in the result table of tabulator()
j
and source
when color is a function
(in bg()
, highlight()
and color()
) is now based on colnames
to avoid mistake while mapping. #395append_chunks()
to append chunks of content
in flextable cells as with as_paragraph()
but without
replacing the whole content.tabulator()
and its method
as_flextable.tabulator()
that help the creation
of tables used in life science industry. It also
comes with function summarizor()
and sugar function
fmt_2stats()
.empty_blanks()
gained arguments width
so that users can also
set blank columns' width....
to format()
function when using colformat_num()
. It
makes possible to use arguments for format()
, for example
colformat_num(drop0trailing = TRUE)
.ft.keepnext
and parameter keepnext
to function body_add_flextable()
that enable the Word option
'keep rows together', so that page break within a table is
avoided when possible.add_latex_dep()
to manually add flextable latex
dependencies to the knitr session.<img>
entries with
invalid width attributes e.g. width=40\%
.df_printer
that can be used via the df_print
option
of R Markdown documents or by calling use_df_printer()
.tab.cap.fp_text
to let format caption prefix
in function opts_current_table()
.colformat_*
and set_flextable_defaults
.surround()
to ease the highlighting
of specific cells with borders.print(x, preview ="pdf")
.tab.topcaption
that let modify the table caption
position from "top" (TRUE) to "bottom" (FALSE).before()
to ease addition of hline()
before some values
to match with.ft.shadow = TRUE
to htmltools_value so that
shadow dom can not be used.fontname
.set_flextable_defaults(line_spacing=1)
)as_equation
for 'MathJax' equations.text_after
to function flextable_to_rmd
to let append
any text to the produced flextable.chunk_dataframe
for those who want to create functions that work with
as_paragraph
.flextable-shadow-host
.set_flextable_defaults
now accept argument padding
that set values for padding
top, bottom, left and right.colorize
, as_highlight
nrow_part
and ncol_keys
are now exportedcompose
has a new argument use_dot
to let
use .
and loop over columnsinit_flextable_defaults()
git diff
colformat_num
calls the format
function on the numeric values
(integer and float) which are therefore displayed as in console R. This function
is used during the creation of a flextable so that by default the content of the
cells is the same as that displayed in console R.merge_v
has a new argument combine
to let use j columns
be used as a single value (all values are pasted).add_body
for adding rows into a flextable bodycolformat_image
for images in flextableas_flextable
for gam
modelsset_flextable_defaults
gained 4 new arguments
post_process_pdf
, post_process_html
, post_process_docx
and post_process_pptx
to enable flextable post-treatments
conditionned by the output format.fp_text_default
and fp_border_default
.\n
and \t
usage for pdfhighlight()
for text highlighting colorset_flextable_defaults()
to set some default
formatting properties, i.e. default border color, font color, padding, decimal.mark ...save_as_docx
gained a new argument pr_section
to define page
layout with section properties, save_as_html
can now output more than
a single table.colformat_
functions now use default values and filter columns that
are irrelevant (i.e. if colformat_num, only numeric values are formatted).
Also, new colformat_
functions have been implemented (colformat_date
, colformat_datetime
and colformat_double
).plot_chunk
and gg_chunk
to add miniplots or ggplots into a flextableph_with_flextable()
.
fix_border_issues
is the last instruction of all theme functions so that borders
are corrected if some cells have been merged.tab_props$cap
has a value.encoding
line_spacing()
(or with function style()
).i = NULL
or j = NULL
, to select none, i = integer(0)
or
j = integer(0)
.footnote
is now able to add inline footnotesxtable_to_flextable()
)continuous_summary()
: summarize continuous columns in a flextableautofit
can now use only some parts of the tables. This allows
for example to no longer have gigantic columns by not taking into account the "footer" part that is often composed of long texts.set_table_properties
lets adapt flextable size as "100%", "50%" of the available width
for Word and HTML.bg()
and color()
now accept functions (i.e. scales::col_numeric()
)display()
as_chunk
(#152)officer::fp_sign
importation that was not used anymore so that officer can
drop digest dependency.display()
.ph_with_flextable_at()
knit_to_wml()
has new arguments align
, split
and tab.cap.style
htmltools_value()
has a new argument ft.align
flextable_html_dependency
to get flextable htmltools::htmlDependancy. This is
necessary to output flextables in html R Markdown documents from loop or other nested operations.save_as_docx
, save_as_pptx
that lets users export flextable objects
to PowerPoint or Word documents.hrule
to control how row heights should be
understood (at least, auto, exact)lollipop
that lets users add mini lollipop chart to flextable
(kindly provided by github.com/pteridin)proc_freq
got a new argument weight
to enable weighting of results.as_flextable.grouped_data()
has now an argument hide_grouplabel
to
let not print the group names.webshot
in function save_as_image
or with
chunk option webshot="webshot2"
.knit_to_wml
to let display flextables from non top level
calls inside R Markdown document.ph_location*
usage
and make placement into slides easier.fit_to_width
to fit a flextable to a maximum widthset_caption
can now be used with R Markdown for Word document and caption
style can be defined with chunk option tab.cap.style
.save_as_image
with R for Windowsplot
), as an image (see save_as_image
)
and raster for ggplot2 (see as_raster
).footnote
to ease footnotes managementvalign
to align vertically paragraphs in cellproc_freq
that mimic SAS proc freq provided by Titouan Robert.linerange
to produce mini lineranges.set_footer_df
theme_alafoli()
and theme_vader()
align_text_col()
and align_nottext_col()
to align
columns by data typemerge_h_range()
to merge a set of columns row by rowfix_border_issues()
fix issues with borders when cells are mergedadd_header_row()
, add_footer_row()
, add_header_lines()
and add_footer_lines()
to add easily data in header or footer.as_flextable()
to let develop new flextable functionsas_grouped_data()
and its method as_flextable()
to
create row titles to separate data in a flextable.values
for functions set_header_labels
and set_formatter
compose
that will replace display
set_caption
only available for html outputknit_print()
can be used with rmarkdown when rendering to PowerPoint.regulartable
and logical columnsbody_replace_flextable_at_bkm
to
replace a bookmarked paragraph by a flextable.colformat_*
to make content formatting easier.
It also deals with NA.format.flextable
method so that users can create
their components.ft.align
to align tables in
rmarkdown::word_document
and ft.split
to activate Word
option 'Allow row to break across pages'.display()
vline()
\n
is now supported. Function autofit
and dim_pretty
do not
support soft returns and may return wrong results (\n will be considered as "").border_outer()
hyperlink_text()
to be used with display
, font()
hline*()
and vline*()
and many new helper functions
to be used instead of borders.xtable_to_flextable()
that is returning
a flextable from an xtable object.htmltools_value()
is exported for shiny applications.knit_print()
to render flextable in rmarkdown.regulartable
, faster and simpler than flextable
ph_with_flextable_at
to add a flextable at any position in a slide.merge_at
is providing a general way of merging cells.theme_box()