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

如何在gt表格中仅合并单行单元格且不删除列?

能否在gt表格中合并单行的两个单元格且不删除列?

我需要实现这样的表格效果:仅在指定单行内合并两个相邻单元格(类似示意图中HIS和GIC列,因属于同一类保险需合并展示),但保留表格原有的列结构,不删除任何列。

以下是简化版的gt表格代码:

library("gt")
library("tidyverse")

df <- tibble(
  desc = c("R1", "R2", "R3"),
  A = c("This is a long sentence that should go over into B's column", "just one cell in colA", "just one cell in colA"),
  B = c("", "just one cell in colB", "just one cell in colB"),
  C = c("just one cell in colC", "just one cell in colC", "just one cell in colC")
)

gt(df)

gt(df) |> 
  cols_merge(
    columns = c(A, B))

解决方案

感谢@MarBlo针对gt实现单行单元格合并提供的巧思方案,不过我最终选择了更简便的方式——切换到flextable库来实现需求。

R语言中有众多表格处理库,针对HTML输出场景,我会根据需求选择不同工具:用reactable实现交互式表格,gt实现常规静态表格,而带单行合并单元格的静态表格则用flextable来完成。

实现代码如下:

library("flextable")
library("tidyverse")

df <- tibble(
  desc = c("R1", "R2", "R3"),
  A = c("This is a long sentence that should go over into B's column", "just one cell in colA", "just one cell in colA"),
  B = c("", "just one cell in colB", "just one cell in colB"),
  C = c("just one cell in colC", "just one cell in colC", "just one cell in colC")
)

ft <- flextable(df) |> 
  set_header_labels("desc" = "") |> 
  merge_at(i = 1, j = 2:3)
ft

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:30:55