library(shiny) library(bslib) # Define UI for slider demo app ---- ui <- page_sidebar( # App title ---- title = "Uploading Files", # Sidebar panel for inputs ---- sidebar = sidebar( # Input: Select a file ---- fileInput( "file1", "Choose CSV File", multiple = TRUE, accept = c( "text/csv", "text/comma-separated-values,text/plain", ".csv" ) ), # Horizontal line ---- tags$hr(), # Input: Checkbox if file has header ---- checkboxInput("header", "Header", TRUE), # Input: Select separator ---- radioButtons( "sep", "Separator", choices = c( Comma = ",", Semicolon = ";", Tab = "\t" ), selected = "," ), # Input: Select quotes ---- radioButtons( "quote", "Quote", choices = c( None = "", "Double Quote" = '"', "Single Quote" = "'" ), selected = '"' ), # Horizontal line ---- tags$hr(), # Input: Select number of rows to display ---- radioButtons( "disp", "Display", choices = c( Head = "head", All = "all" ), selected = "head" ) ), # Output: Data file ---- tableOutput("contents") ) # Define server logic to read selected file ---- server <- function(input, output) { output$contents <- renderTable({ # input$file1 will be NULL initially. After the user selects # and uploads a file, head of that data file by default, # or all rows if selected, will be shown. req(input$file1) df <- read.csv( input$file1$datapath, header = input$header, sep = input$sep, quote = input$quote ) if (input$disp == "head") { return(head(df)) } else { return(df) } }) } # Create Shiny app ---- shinyApp(ui, server)