css 如何在Shiny中使用R Table1包设置表格样式

hfyxw5xn  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(127)

使用Table1包似乎不能在Shiny中创建样式良好的表格。CSS也不能应用。有什么建议吗?下面是我的代码。

library(shiny)
library(table1)

ui<-fluidPage({
  
  # includeCSS("www/style_new.css") ##  illustrate the table1 does nto have right format in shiny
  
  tags$head(tags$style(
        "
        .Rtable1 thead>tr:first-child>th {
               border-top: 10pt solid black;
        }
        .table.Rtable1 body {
          font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif;
          font-size: 14px;
          line-height: 1.42857143;
          color: red;
          background-color: #fff;
        } 
        "
                       
      ))

  fluidRow(
    column(
      6, fluidRow(h4("Data Generation")),
      fluidRow(actionButton("go", "Go", width = "100%"))),
    
    column(8,
           br(),
           uiOutput('table') 
       
    )
    
  )
  
})

server <- function(input, output, session) {
  
  observeEvent(input$go,{
    
    output$table <-renderUI({
      
      tags$div(class='mytable', style=('border: 3px solid #1C6EA4; 
                                     border-top: 2pt solid blue; border-bottom:1pt solid black'),
     
      table1::table1(~ mpg +cyl |factor(gear), data=mtcars,
                     overall=c(left="Total"))
      )
    })
    
  })
  
}

shinyApp(ui, server)

我试着用CSS来覆盖内置样式,它似乎不工作。
我附上了一个简单的应用程序代码。
谢谢

j7dteeu8

j7dteeu81#

您可能会发现以下命令很有用:Best practice to integrate HTML table output generated by table1 package
另外,使用fluidPage()时要小心(不要使用大括号,因为它只创建了一个表达式)。

library(shiny)
library(table1)

ui<-fluidPage(

  # Include CSS for table1 default formatting
  includeCSS(system.file(package="table1", "table1_defaults_1.0/table1_defaults.css")),

  # Further customization can be done here
  tags$style(type="text/css", "
    .Rtable1 tr th {
      color: red;
    }
    .Rtable1 tr td {
      color: blue;
    }
  "),

  fluidRow(
    column(
      6, fluidRow(h4("Data Generation")),
      fluidRow(actionButton("go", "Go", width = "100%"))),
    
    column(8,
           br(),
           uiOutput('table') 
       
    )
    
  )
  
)

server <- function(input, output, session) {
  
  observeEvent(input$go,{
    
    output$table <-renderUI({
      
      table1::table1(~ mpg +cyl |factor(gear), data=mtcars,
                     overall=c(left="Total"))
    })
    
  })
  
}

shinyApp(ui, server)

相关问题