The flextable package provides a framework for easily create tables for reporting and publications. Tables can be easily formatted with a set of verbs such as bold()
, color()
, they can receive a header of more than one line, cells can be merged or contain an image. The package make it possible to build any table for publication from a data.frame
.
set_flextable_defaults(
font.family = "Arial", font.size = 10,
border.color = "gray")
flextable(head(cars)) %>%
bold(part = "header") %>%
add_footer_lines("The 'cars' dataset")
Tables can be embedded within HTML, PDF, Word and PowerPoint documents from R Markdown documents and within Microsoft Word or PowerPoint documents with package officer. Tables can also be rendered as R plots or graphic files (png, pdf and jpeg).
flextable(mtcars) %>%
theme_vanilla() %>%
save_as_docx(path = "mytable.docx")
A flextable
object is a data.frame representation. An API is available to let R users create tables for reporting and control their formatting properties and their layout. The package provides functions that give control over:
- header, body and footer content
- text, paragraphs, cells and border formatting of any element
- displayed values
Installation
install.packages("flextable")
You can get the development version from GitHub:
devtools::install_github("davidgohel/flextable")
Resources
- User guide: https://ardata-fr.github.io/flextable-book/
- Manuals: https://davidgohel.github.io/flextable/reference/index.html
- Gallery of examples: https://ardata.fr/en/flextable-gallery/
Getting help / questions
If you have questions about how to use the package, visit Stackoverflow and use tags flextable
and r
Stackoverflow link. You can also use https://github.com/davidgohel/flextable/discussions to start a discussion.
Contributing to the package
Code of Conduct
Anyone getting involved in this package agrees to our Code of Conduct.
Bug reports
When you file a bug report, please spend some time making it easy for us to reproduce. If you take the time to make the bug report consistent, it will be easier to fix.
Contributing to the package development
A great way to start is to contribute an example or improve the documentation.
If you want to submit a Pull Request to integrate functions of yours, please provide:
- the new function(s) with code and roxygen tags (with examples)
- a new section in the appropriate vignette that describes how to use the new function
- corresponding tests in directory
tests/testthat
.