自定义按钮扩展下载的文件名
Customize file name of button extension downloads
我觉得问这些基本问题有点傻,但我找不到任何关于这个的东西。我想让我的用户在单击我的 table 的 'excel' 按钮时为文件命名。要么打开下载对话框,要么弹出另一个 UI,他们可以在其中输入名称。那可能吗?目前,名称等于应用程序的标签。
rm(list=ls())
library(shiny)
library(datasets)
library(DT)
library(data.table)
DT<-data.table(matrix(abs(rnorm(600*40,sd=100)),nrow=600))
server<-shinyServer(function(input, output) {
output$view <- DT::renderDataTable(
DT[,.SD],extensions = c( 'FixedHeader','Buttons'),
options=list(pageLength=60,fixedHeader = TRUE,dom = 'Bfrtip',buttons = c( 'csv', 'excel' )))
})
ui<-shinyUI(fluidPage(
titlePanel("Shiny MWE"),
DT::dataTableOutput("view")
))
runApp(list(ui=ui,server=server))
您可以制作一个响应式 datatable
,然后将其传递给 renderDataTable
,但每次更改文件名时它都会重新呈现:
rm(list=ls())
library(shiny)
library(datasets)
library(DT)
library(data.table)
DT<-data.table(matrix(abs(rnorm(600*40,sd=100)),nrow=600))
server<-shinyServer(function(input, output) {
dt <- reactive({
DT::datatable(DT[,.SD],extensions = c( 'FixedHeader','Buttons'),
options=list(pageLength=60,fixedHeader = TRUE,dom = 'Bfrtip',
buttons = list("csv",list(extend='excel',filename=input$filename))))
})
output$view <- DT::renderDataTable(
dt(),server=FALSE
)
})
ui<-shinyUI(fluidPage(
titlePanel("Shiny MWE"),
textInput("filename","Enter file name"),
DT::dataTableOutput("view")
))
runApp(list(ui=ui,server=server))
我觉得问这些基本问题有点傻,但我找不到任何关于这个的东西。我想让我的用户在单击我的 table 的 'excel' 按钮时为文件命名。要么打开下载对话框,要么弹出另一个 UI,他们可以在其中输入名称。那可能吗?目前,名称等于应用程序的标签。
rm(list=ls())
library(shiny)
library(datasets)
library(DT)
library(data.table)
DT<-data.table(matrix(abs(rnorm(600*40,sd=100)),nrow=600))
server<-shinyServer(function(input, output) {
output$view <- DT::renderDataTable(
DT[,.SD],extensions = c( 'FixedHeader','Buttons'),
options=list(pageLength=60,fixedHeader = TRUE,dom = 'Bfrtip',buttons = c( 'csv', 'excel' )))
})
ui<-shinyUI(fluidPage(
titlePanel("Shiny MWE"),
DT::dataTableOutput("view")
))
runApp(list(ui=ui,server=server))
您可以制作一个响应式 datatable
,然后将其传递给 renderDataTable
,但每次更改文件名时它都会重新呈现:
rm(list=ls())
library(shiny)
library(datasets)
library(DT)
library(data.table)
DT<-data.table(matrix(abs(rnorm(600*40,sd=100)),nrow=600))
server<-shinyServer(function(input, output) {
dt <- reactive({
DT::datatable(DT[,.SD],extensions = c( 'FixedHeader','Buttons'),
options=list(pageLength=60,fixedHeader = TRUE,dom = 'Bfrtip',
buttons = list("csv",list(extend='excel',filename=input$filename))))
})
output$view <- DT::renderDataTable(
dt(),server=FALSE
)
})
ui<-shinyUI(fluidPage(
titlePanel("Shiny MWE"),
textInput("filename","Enter file name"),
DT::dataTableOutput("view")
))
runApp(list(ui=ui,server=server))