You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用flextable制作中间含文本的标题式表格

使用flextable制作带中间标题的表格

步骤说明与代码实现

要制作带有中间文本标题的表格,我们可以利用flextable的表头添加、单元格合并和样式设置功能,针对你的data_common数据框处理如下:

  1. 加载依赖包
library(flextable)
library(dplyr)
  1. 标记中间标题行
    先识别数据中作为分隔标题的行(即GROUP列值为"GROUP"的行):
data_common <- data_common %>%
  mutate(is_title = GROUP == "GROUP")
  1. 创建并格式化表格
# 初始化flextable,移除标记列
ft <- flextable(data_common %>% select(-is_title)) %>%
  # 添加自定义顶部表头,对应指定的三个标题,设置列合并规则
  add_header_row(
    values = c("col1", "col2", "col3"),
    colwidths = c(1, 2, 2)  # 按原数据5列分配:1列GROUP、2列col6/col7、2列dif/p.value
  ) %>%
  # 合并中间标题行的所有单元格
  merge_at(
    i = which(data_common$is_title) + 1,  # 因添加了顶部表头,行号需+1
    j = 1:5,
    part = "body"
  ) %>%
  # 给中间标题行设置加粗样式
  bold(i = which(data_common$is_title) + 1, part = "body") %>%
  # 解析内容中的换行符,实现自动换行
  fix_texts() %>%
  # 应用表格主题,设置全局居中对齐
  theme_box() %>%
  align(align = "center", part = "all") %>%
  # 调整列宽适配内容
  width(width = c(1.5, 2, 2, 2, 2))

# 查看最终表格
ft

关键细节说明

  • add_header_row:通过colwidths参数控制顶部大标题对应的子列数量,可根据实际表头对应关系调整数值。
  • merge_at:将中间标题行的所有单元格合并为一个,实现跨列标题效果。
  • fix_texts():自动识别内容中的\n换行符,让表格内容按换行显示,避免内容拥挤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:45:36