代码之家  ›  专栏  ›  技术社区  ›  statquant

如何使datatable列标题在shiny中向左对齐?

  •  1
  • statquant  · 技术社区  · 6 年前

    由于某些原因,我无法使数据表的列标题正确左对齐:

    library(shiny)
    library(DT)
    library(ggplot2)
    
    ui <- fluidPage(
      title = "Examples of DataTables",
      sidebarLayout(mainPanel = 
                      mainPanel(
                        tabsetPanel(
                          id = 'dataset',
                          tabPanel("diamonds", DT::dataTableOutput("mytable1"))
                        )
                      ),sidebarPanel = sidebarPanel()
      )
    )
    
    server <- function(input, output) {
    
      # choose columns to display
      diamonds2 = ggplot2::diamonds[sample(nrow(ggplot2::diamonds), 1000), ]
      output$mytable1 <- DT::renderDataTable({
        DT::datatable(diamonds2,
                      extensions = c('Buttons', 
                                     #'Autofill', 
                                     'ColReorder',
                                     'Responsive',
                                     'Scroller'),
                      style = 'bootstrap',
                      class = 'table-bordered stripe table-condensed',
                      filter = list(position = 'top', clear = FALSE),
                      rownames = FALSE,
                      options = list( dom = 'Bfrtip',
                                      buttons = list(list(extend = 'csv',
                                                          buttons = c('csv'),
                                                          exportOptions = list(modifiers = list(page = "current"))
                                                          )
                                                     ),
                                      search = list(regex = TRUE, caseInsensitive = FALSE),
                                      #autofill = TRUE,
                                      colReorder = TRUE,
                                      deferRender = TRUE,
                                      scrollY = 200,
                                      scroller = TRUE,
                                      columnDefs = list(list(className = 'dt-left', targets = '_all'))
                                      )
                      )
      })
    
    }
    
    shinyApp(ui, server)
    

    你自己看看 enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   SeGa    6 年前

    这样就可以了。

    #mytable1 .table th 我们可以访问表头。
    #mytable1 .table td 我们可以进入表格单元格。

    text-align: left; 我们将文本左对齐。

    library(shiny)
    library(shinyjs)
    library(DT)
    library(ggplot2)
    
    ui <- fluidPage(
      title = "Examples of DataTables",
    
      ## CSS-Code ###############
      inlineCSS("
                #mytable1 .table th {
                 text-align: left;
                }
    
                #mytable1 .table td {
                 text-align: left;
                }
                "
      ),
       #####################
      sidebarLayout(mainPanel = 
                      mainPanel(
                        tabsetPanel(
                          id = 'dataset',
                          tabPanel("diamonds", DT::dataTableOutput("mytable1"))
                        )
                      ),sidebarPanel = sidebarPanel()
      )
    )
    
    server <- function(input, output) {
    
      # choose columns to display
      diamonds2 = ggplot2::diamonds[sample(nrow(ggplot2::diamonds), 1000), ]
      output$mytable1 <- DT::renderDataTable({
        DT::datatable(diamonds2,
                      extensions = c('Buttons', 
                                     #'Autofill', 
                                     'ColReorder',
                                     'Responsive',
                                     'Scroller'),
                      style = 'bootstrap',
                      class = 'table-bordered stripe table-condensed',
                      filter = list(position = 'top', clear = FALSE),
                      rownames = FALSE,
                      options = list( dom = 'Bfrtip',
                                      buttons = list(list(extend = 'csv',
                                                          buttons = c('csv'),
                                                          exportOptions = list(modifiers = list(page = "current"))
                                      )
                                      ),
                                      search = list(regex = TRUE, caseInsensitive = FALSE),
                                      #autofill = TRUE,
                                      colReorder = TRUE,
                                      deferRender = TRUE,
                                      scrollY = 200,
                                      scroller = TRUE,
                                      columnDefs = list(list(className = 'dt-left', targets = '_all'))
                      )
        )
      })
    
    }
    
    shinyApp(ui, server)