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>
这是我得到的:
这就是我想要的:
【问题讨论】:
也许你应该考虑使用DT
或tableHTML
包。
【参考方案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 模板的格式化问题的主要内容,如果未能解决你的问题,请参考以下文章