将文本颜色添加到DT Shiny数据表中的特定列名称(标题)

Lis*_*els 2 shiny dt

我对Shiny中的DT相当新,并希望将文本颜色添加到表中的特定列,我可以使用formatStyle下面的示例代码块来执行此操作.但是,我还想将相同的文本颜色添加到相应的列名称(标题),是否有一种简单的方法可以做到这一点?

library(shiny)
library(DT)

ui = fluidPage(DT::dataTableOutput('fDataTable'))

server = function(input, output) {
  output$fDataTable = DT::renderDataTable({
    DT::datatable(iris) %>%
      formatStyle(columns = 1, color = "red") %>%
      formatStyle(columns = 3, color = "blue")
  })
}  

app = list(ui = ui, server = server)
runApp(app)
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

Nic*_*icE 6

您可以通过将CSS添加到colnames要渲染的表中来执行此操作(您还需要设置escapeFALSE或将转义html).

这是一个例子:

library(shiny)
library(DT)

ui = fluidPage(DT::dataTableOutput('fDataTable'))

server = function(input, output) {
  output$fDataTable = DT::renderDataTable({
    iris_coloured <- iris
    colnames(iris_coloured)[c(1,3)] <- paste0('<span style="color:',c("red","blue"),'">',colnames(iris)[c(1,3)],'</span>')
    DT::datatable(iris_coloured,escape=F) %>%
      formatStyle(columns = 1, color = "red") %>%
      formatStyle(columns = 3, color = "blue")
  })
}  

app = list(ui = ui, server = server)
runApp(app)
Run Code Online (Sandbox Code Playgroud)