Hello, I was trying to use a shiny app and refer in the UI to a database that I upload on the server side but I can't find a way to do it.
The way I upload it is as follows:
tableData <- reactive({
inFile <- input$file1
if (!is.null(inFile)){
read_excel(inFile$datapath)
} else {
mtcars
}
})
This should work:
I added a table to see the results.
inFile contains a bit more than just the name of the file (see the print(inFile) result in the console, so it's better to adress it not with inFile, but with "input$file1$datapath" in the read_excel.
library(shiny)
library(readxl)
# Define UI for application that draws a histogram
ui <- fluidPage(
titlePanel("Testing Shiny"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
fileInput("file1", "Please upload your Excel file here!")
),
# Show a table of the data
mainPanel(
tableOutput("table1")
)
)
)
# Define server logic required to draw a histogram
server <- function(input, output) {
tableData <- reactive({
inFile <- input$file1
print(inFile)
if (is.null(inFile)){
importeddata = mtcars
# you could remove the "importeddata = " but if you want to do more on the file it's better to store it somewhere.
} else {
importeddata = read_excel(input$file1$datapath)
}
})
output$table1 = renderTable(tableData())
}
# Run the application
shinyApp(ui = ui, server = server)