r Shiny 输出表的 HTML 模板的格式化问题

Posted

技术标签:

【中文标题】r Shiny 输出表的 HTML 模板的格式化问题【英文标题】:Formatting issue with HTML template for r Shiny output table 【发布时间】:2022-01-13 19:03:59 【问题描述】:

我先说几十年前我在 html 方面表现不错,但我想我错过了与 R 的联系。我正在尝试显示一些文本并传递一些变量。这很好用(我修改了一些基本代码)。但是,我无法更改格式,因为所有内容都显示在一列而不是几列中。我徒劳地尝试了几件事。我觉得它真的很基本,但任何帮助将不胜感激。 这是 HTML 文件:

<div class="aimm-score-table">
  <ul class="aimm-score-row">
    <li>Potential Score</li><li>Likelihood factor</li><li>Score</li>
   </ul>
  <ul class="aimm-score-row">
    <li id=" ns('aimm_score_potential_score') "></li>
    <li>--</li>
    <li id=" ns('aimm_score_likelihood_factor') "></li>
    <li>=</li>
    <li id=" ns('aimm_score_score') "></li>
  </ul>
  <ul class="aimm-score-row">
    <li>Rating</li>
    <li id=" ns('aimm_score_rating') "></li>
  </ul>
</div>

这是我得到的:

这就是我想要的:

【问题讨论】:

也许你应该考虑使用DTtableHTML 包。 【参考方案1】:

这是一种方法。当然,如果您想要其他边框等,则必须更改 CSS。

library(htmltools)

tbl <- withTags(
  table(
    tbody(
      tr(
        td(colspan = 3, class="col3", "Potential"),
        td(colspan = 3, class="col3", "Likelihood"),
        td(colspan = 3, class="col3", "Ex-Ante")
      ),
      tr(
        td(),
        td("88"),
        td(colspan = 2, class="col2", "-"),
        td("17"),
        td(colspan = 2, class="col2", "="),
        td("61"),
        td()
      ),
      tr(
        td(colspan = 3, class="col3"),
        td(colspan = 3, class="col3"),
        td(colspan = 3, class="col3", "Good")
      )
    )
  )
)

browsable(
  tagList(
    tags$style(
      HTML(
        "table width: 400px; table-layout: fixed",
        "table, td border: 1px solid black",
        "td text-align: center",
        "td.col3 width: calc(100% / 3)",
        "td.col2 width: calc(100% * 2 / 9)",
        "td width: calc(100% / 9)"
      )
    ),
    tbl
  )
)

【讨论】:

【参考方案2】:

Stéphane Laurent 非常感谢,我将您的代码集成到我的 html 模板中,这就像一个魅力。 @YBS我不熟悉 htmltable 的使用,但我必须找到一种方法来回收存储在 www/ 文件夹下的变量,这些变量是从我的 ui 调用的:

htmlTemplate(
                      filename = "www/html/aimm_score_table.html",
                      ns = ns
                    ),

并且使用 html 表格似乎是唯一的方法,我不习惯组合不同类型的代码并将 stephanes 存储为模板是最直接的。谢谢两位!

【讨论】:

以上是关于r Shiny 输出表的 HTML 模板的格式化问题的主要内容,如果未能解决你的问题,请参考以下文章

从 R Shiny App 输出纯 HTML 文件

R Shiny:在tableOutput中格式化文本

将 R Shiny Page 导出为 PDF

R Shiny:如何使幻灯片居中

将反应输入传递到 R Shiny 中的绘图轴

在 R Shiny Server 中对文本进行样式化或格式化