Création d’une fonction theme

library(flextable)
library(magrittr)

Définition simple

Nous montrons dans cet exemple comment créer une fonction theme que nous pourrons plus tard ré-utiliser autant de fois qu’on le veut.

Une fonction de thème est une fonction R dont le premier argument attendu est un flextable et dont la sortie est ce même flextable mais formaté selon les instructions de votre fonction. Vous êtes libre de faire n’importe quel formatage dans cette fonction.

Code d’exemple

theme_design <- function(x) {
  x <- border_remove(x)
  std_border <- fp_border_default(width = 4, color = "white")
  x <- fontsize(x, size = 10, part = "all")
  x <- font(x, fontname = "Courier", part = "all")
  x <- align(x, align = "center", part = "all")
  x <- bold(x, bold = TRUE, part = "all")
  x <- bg(x, bg = "#475f77", part = "body")
  x <- bg(x, bg = "#eb5555", part = "header")
  x <- bg(x, bg = "#1bbbda", part = "footer")
  x <- color(x, color = "white", part = "all")
  x <- padding(x, padding = 6, part = "all")
  x <- border_outer(x, part="all", border = std_border )
  x <- border_inner_h(x, border = std_border, part="all")
  x <- border_inner_v(x, border = std_border, part="all")
  x <- set_table_properties(x, layout = "fixed")
  x
}

Codes d’illustration

Le code qui suit illustre l’application de la fonction theme que nous avons créé.

flextable(head(cars)) %>% 
  theme_design()

Il devient facile de l’appliquer sur n’importe quel jeu de données :

ft <- flextable(head(airquality)) %>% 
  add_footer_lines(
    c("Daily air quality measurements in New York, May to September 1973.", 
      "Hummm, non non rien.")) %>% 
  autofit() %>% 
  add_header_lines("New York Air Quality Measurements") %>% 
  theme_design()
ft