You need to enable JavaScript to run this app. 如何在R Markdown中使用flextable包实现多个表格并排对齐
优惠活动
大模型
产品
解决方案
定价
更多

如何在R Markdown中使用flextable包实现多个表格并排对齐

flextable 多表格并排对齐实现方案

前置依赖

先更新setup代码块加载所需辅助包:

knitr::opts_chunk$set(echo = TRUE)
library(flextable)
library(dplyr)
library(htmltools) # 适配HTML输出
library(officer) # 适配Word输出

分场景实现代码

直接替换原有生成表格的代码块即可,无需修改R Markdown的头部输出配置:

# ---------------- HTML输出分支 ----------------
if (knitr::is_html_output()) {
  div(
    style = "display: flex; gap: 24px; align-items: flex-start; justify-content: center;",
    flextable(pressure[1:7,]) %>% set_caption(caption = "Table 1"),
    flextable(cars[1:5,]) %>% set_caption(caption = "Table 2")
  )
}

# ---------------- Word输出分支 ----------------
if (knitr::is_word_output()) {
  ft1 <- flextable(pressure[1:7,]) %>% set_caption(caption = "Table 1")
  ft2 <- flextable(cars[1:5,]) %>% set_caption(caption = "Table 2")
  # 构建无外框的1行2列容器承载两个表格
  officer::block_table(
    rows = 1,
    columns = 2,
    width = c(7, 7), # A4页面下总宽度不超过15cm,可按需调整
    header = FALSE,
    style = "none"
  ) %>%
    officer::ph_with(value = ft1, loc = cell_rows(1) & cell_columns(1)) %>%
    officer::ph_with(value = ft2, loc = cell_rows(1) & cell_columns(2))
}

可调参数说明

  • HTML场景下可修改style内的参数:gap控制表格间距、justify-content控制整体居中/左对齐、align-items控制不同高度表格的纵向对齐方式
  • Word场景下可修改width参数的两个数值,适配不同页面大小、边距的要求

注意事项

  • 两个表格会完整保留各自原有样式、标题
  • 方案同时兼容html_document和word_document两种输出格式,无需切换代码

内容的提问来源于stack exchange,提问作者MsGISRocker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 18:06:07