我对提出所有这些基本问题感到有些愚蠢,但我找不到任何相关内容。我想允许我的用户在点击' excel'我的桌子按钮。下载对话框打开,或者弹出另一个用户界面,可以输入名称。那可能吗?现在,名称等于应用程序的标记。
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))
答案 0 :(得分:7)
您可以制作被动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))