在Word报表中创建表格时,我经常希望在变量之间添加空行。作为一个琐碎的玩具示例:
library(dplyr)
library(officer)
library(flextable)doc <- read_docx()table_no_breaks <- mtcars %>%
count(cyl)table_no_breaks_ft <- flextable(table_no_breaks)doc <- doc %>%
body_add_flextable(table_no_breaks_ft) %>%
body_add_par("")生成一个如下所示的表:

我可以直接向数据框添加换行符,如下所示:
table_breaks <- table_no_breaks %>%
mutate(
across(
everything(),
as.character
)
) %>%
add_row(cyl = NA, n = NA, .after = 1) %>%
add_row(cyl = NA, n = NA, .after = 3) %>%
add_row(cyl = NA, n = NA, .after = 5)table_breaks_ft <- flextable(table_breaks)doc <- doc %>%
body_add_flextable(table_no_breaks_ft) %>%
body_add_par("") %>%
body_add_flextable(table_breaks_ft)print(doc, "flextable.docx")这会产生我想要的Word表:

但是,我更希望能够将空白行直接添加到flextable,而不是用来构建flextable的数据框架。对我来说,这是一个格式问题,而不是数据问题,我更喜欢将数据问题(数据框架的操作)和格式问题( Word表的操作)分开。任何建议都是非常感谢的!
发布于 2021-09-10 14:55:05
这已经很晚了,但是如果您只是在下面的表示例中添加填充,会怎么样呢?问题是你想要的是实际的空白行还是仅仅是行之间的间距?
library(dplyr)
library(flextable)
table_no_breaks <- mtcars %>%
count(cyl)
table_breaks <- table_no_breaks %>%
mutate(
across(
everything(),
as.character
))
flextable(table_no_breaks) |>
padding(padding = 15, part = "all")

编辑:如果只想填充某些行,可以使用i和j输入来指定要填充的某些行和列。示例如下:
flextable(table_no_breaks) |>
padding(i= 2, padding = 15, padding.top = TRUE) |>
align(align = "center", part = "all")

https://stackoverflow.com/questions/64932726
复制相似问题