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

如何在flextable中保留字符列的额外空白字符?

在flextable中保留字符列的额外空白

当你运行以下代码时:

flextable(data.frame("temp" = c("Lore ips", 
                                "dol  sit")))

会发现原数据里"dol"与"sit"之间的两个空格被合并成一个,导致"ips"和"sit"无法对齐。这是因为flextable默认会合并连续空白字符,要保留原始空格可以用以下两种方法:

  • 方法一:用ft_extra()设置空白保留规则
    借助ft_extra()的white_space参数,将其设为"pre",对应CSS的white-space: pre规则,能完整保留文本中的所有空格、换行符:

    library(flextable)
    
    df <- data.frame("temp" = c("Lore ips", "dol  sit"))
    flextable(df) %>% 
      ft_extra(white_space = "pre")
    
  • 方法二:替换空格为非换行空格(&nbsp;)
    通过set_formatter()配合htmltools::HTML(),把普通空格替换成HTML的非换行空格,避免被自动合并:

    library(flextable)
    library(htmltools)
    
    df <- data.frame("temp" = c("Lore ips", "dol  sit"))
    flextable(df) %>% 
      set_formatter(temp = function(x) {
        HTML(gsub(" ", "&nbsp;", x))
      })
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 23:47:14