FlexTable输出.docx水平表已调整为缩小边距

时间:2018-12-06 20:47:27

标签: r flextable

我有一个名为flextable的{​​{1}}对象,我想直接将其放置在word文档中,其水平布局具有窄边距。 我面临2个问题:

1)小插图中建议的方法会产生额外的页面(表格的前一页,后一页)。我认为这是一个已知问题,但不清楚如何解决。
2)我希望页边距狭窄,并且水平页面上的结果表可以自动适合该页面。我想要这样做,以便可以使用尽可能多的页面来打印表格。我当前的方法是手动打开文档,更改布局并在Word上选择“自动调整”。

这是我用来生成文档的代码。出于说明目的,我将在表中使用html_table,但是实际的行比mtcars多。

mtcars

1 个答案:

答案 0 :(得分:1)

在Word文档中,仅在停止时定义各节(我无法解释为什么这样做了,但这就是底层xml的方式...)。如果前一部分不是横向的,则横向的部分也需要分页。

自动拟合一个柔性表,请使用函数autofit

library(flextable)
library(officer)
library(magrittr)

html_table <- regulartable(mtcars) %>% 
  autofit()

doc <- read_docx() %>%
  body_add_flextable(value = html_table, split = TRUE) %>%
  body_end_section_landscape() %>% # a landscape section is ending here
  print( target = "my_table.docx" )

enter image description here

如果您不需要多余的页面,则需要一个具有默认页面方向的模板作为横向。另外,您将不需要任何代码来管理方向或边距。