2

我想知道如何通过闪亮的动态内容逐个单元格创建(html)表格单元格?现在我正在使用以下组合:

server.R

output$desc <- renderTable(
  hdx.desc()
)

ui.R

tabsetPanel(
  tabPanel("Description", tableOutput("desc"))
)

这很好用。我想设置一些单元格的链接,并在表格中添加一些额外的布局设置,如粗体、无边框等,也不想在前面的行号。

我怎样才能做到这一点?我尝试了 HTML() 命令,但它不起作用。谢谢你的帮助。

4

2 回答 2

5

如果您想使用renderTable最简单的方法来设置表格样式,则使用 css。删除行号需要将选项传递include.rownames = FALSEprint.xtable. 执行此操作的函数中有一个...参数renderTable。您可以在表中包含 html 并使用sanitize.text.function参数。

runApp(list(
  ui = bootstrapPage(
    tableOutput("myTable")
    , tags$head(tags$style(type="text/css", 
"#myTable table th td {
border: 1px solid black !important;
}
#myTable table th
{
background-color:green;
color:white;
}"
))

  ),
  server = function(input, output) {
    output$myTable <- renderTable({ 
      temp = c(runif(4), 
               as.character(tags$a(id = 'myId', href='http://www.example.com', runif(1)))
               )
      data.frame(date=seq.Date(Sys.Date(), by=1, length.out=5), temp = temp)
      }, include.rownames = FALSE, sanitize.text.function = function(x) x)
  }
))

或者查看renderDataTable哪个允许您使用http://datatables.net/

于 2014-05-03T03:21:49.157 回答
0

如果您知道您的表格将是静态的并且只有内容将是动态的,您可以按照我在此处注释的方法:Shiny - 根据输入使用过滤数据填充静态 HTML 表格

简而言之,我构建了一个静态 html 表格并将其包装起来在单独的 R 文件中的函数中,在服务器中获取它并在 renderUI() 函数中使用新过滤的数据调用它。因此,表格内容会随着用户输入而更新。

未来的项目将是一个允许用户以动态方式生成静态 html 表的函数,例如,创建具有 X 行、Y 列、rownames[]、colnames[] 等的表的函数。如果我成功了,我将在这里发布我的解决方案。

于 2017-05-17T11:56:49.543 回答