When cells are merged, the rendered borders will be those of the first cell. If a column is made of three merged cells, the bottom border that will be seen will be the bottom border of the first cell in the column. From a user point of view, this is wrong, the bottom should be the one defined for cell 3. This function modify the border values to avoid that effect.

fix_border_issues(x, part = "all")

Arguments

x

flextable object

part

partname of the table (one of 'all', 'body', 'header', 'footer')

Examples

library(officer)
dat <- data.frame(a = 1:5, b = 6:10)
ft <- flextable(dat)
  ft <- theme_box(ft)
  ft <- merge_at(ft, i = 4:5, j = 1, part = "body")
  ft <- hline(ft, i = 5, part = "body",
        border = fp_border(color = "red", width = 5) )
print(ft)
#> a flextable object.
#> col_keys: `a`, `b` 
#> header has 1 row(s) 
#> body has 5 row(s) 
#> original dataset sample: 
#>   a  b
#> 1 1  6
#> 2 2  7
#> 3 3  8
#> 4 4  9
#> 5 5 10
ft <- fix_border_issues(ft)
print(ft)
#> a flextable object.
#> col_keys: `a`, `b` 
#> header has 1 row(s) 
#> body has 5 row(s) 
#> original dataset sample: 
#>   a  b
#> 1 1  6
#> 2 2  7
#> 3 3  8
#> 4 4  9
#> 5 5 10