2016-01-28 64 views
2

我對Shiny中的DT相當陌生,想將文本顏色添加到表格中的特定列,我可以使用formatStyle根據以下示例代碼塊。但是,我還想將相同的文本顏色添加到相應的列名稱(標題),是否有一種簡單的方法來執行此操作?將文本顏色添加到DT中的特定列名稱(標題)Shiny datatable

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) 

任何幫助將不勝感激。

回答

5

您可以通過將CSS添加到正在呈現的表格的colnames(您還需要將escape設置爲FALSE或者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) 
相關問題