Я пытаюсь загрузить данные по каждому выбору пользователя в Excel (на разных вкладках).
Ниже приведен мой запрос - Когда пользователь нажимает «Загрузить это представление», выходная таблица должна быть сохранена в Отличник Точно так же, когда пользователь выбирает другие опции, снова при нажатии на Download This View, выходная таблица должна быть сохранена в другой вкладке. Я пробовал вывод материала и списка, но получаю ошибку при разборе имени файла в списке. Примечание: я пытаюсь это сделать на Rserver.
i=1
library(writexl)
library(shiny)
library(shinyWidgets)
library(shinythemes)
library(shinydashboard)
library(openxlsx)
library(DT)
library(dplyr)
ui <- fluidPage(
sidebarPanel(
fluidRow( column( width = 10,
tags$h3("Select Filters"),
panel( selectizeGroupUI(
id = "my-filters1",
inline = F,
params = list(
cyl = list(inputId = "cyl", title = "cyl",multiple=TRUE),
gear = list(inputId = "gear", title = "gear",multiple=TRUE),
carb = list(inputId = "carb", title = "carb",multiple=TRUE)
)
), status = "primary"))),
pickerInput("filter", "Select",multiple = TRUE,options = list(
`actions-box` = TRUE),c("gear","carb","gear"),selected = c("gear"))
),
mainPanel(
downloadButton("dl", "Download"),
materialSwitch(
inputId = "upMaterial",
label = "Download this view")),textAreaInput("caption", "Sheetname", "Output", width = "150px",height=40),
dataTableOutput("data1")
)
server <- function(input, output) {
res_mod1 <- callModule(
module = selectizeGroupServer,
id = "my-filters1",
data = mtcars,
vars = c("cyl","gear","carb")
)
base_data <- reactive({
res<- mtcars
#res$Settlement.Amount.GBP<-ifelse(is.na(res$Settlement.Amount),0,res$Settlement.Amount)
if (!(is.null(input$`my-filters1-cyl`))) res<-filter(res, (cyl) == input$`my-filters1-cyl`)
if (!(is.null(input$`my-filters1-gear`))) res<-filter(res, (gear) == input$`my-filters1-gear`)
if (!(is.null(input$`my-filters1-carb`))) res<-filter(res, (carb) == input$`my-filters1-carb`)
res2<- res%>% select(input$filter,mpg)%>%
group_by(!!!rlang::syms(input$filter)) %>%
summarise_at(vars(mpg),funs(sum))
res2
})
# my_workbook <- createWorkbook()
#materialswdata<-reactive({
if (input$upMaterial ==TRUE){
eval(parse=paste(data,i,sep="_"))<-base_data()
browse()
if (i==1)
{ data_list <- reactive({
list(
paste(data,i,sep="_")= eval(parse=paste(data,i,sep="_"))
)
})}
if (i!=1)
{
data_list <- reactive({
list.append(data_list (),
paste(data,i,"_")= eval(parse=paste(data,i,"_"))
)
})
}
i=i+1
updateMaterialSwitch(session,upMaterial,value = F)
}
#})
output$data1 <- DT::renderDataTable(datatable(base_data()))
output$dl <- downloadHandler(
filename = function() { "ae.xlsx"},
content = function(file) {write_xlsx(data_list(), path = file)}
)
}
shinyApp(ui, server)