首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使RShiny中的下载按钮工作,使其能够下载输出显示?

如何使RShiny中的下载按钮工作,使其能够下载输出显示?
EN

Stack Overflow用户
提问于 2017-12-10 05:38:21
回答 1查看 355关注 0票数 0

本系统是一个审计样本选择系统,我在其中使用RStudio开发了该系统。该系统的作用如下:

  1. 用户上传Excel文件或PDF文件。
  2. 用户需要在两个无线电按钮中进行选择,一个是“低风险”,另一个是“高风险”。
  3. 用户点击“提交”按钮。
  4. 根据文件中表的行数,系统自动选择一定数量的审核示例。
  5. 选择的审计样本数量在“低风险”和“高风险”之间存在差异。
  6. 系统显示选定的审计示例。
  7. 用户可以下载所选的审计示例。 库(闪亮)库(Xlsxjars)库(Xlsxjars)库(RJava)库(Pdftools)库(Tabulizer) ui <- fluidPage(“审计样本选择系统”),sidebarLayout( sidebarPanel(“file1”,“选择文件”,accept = c(".xlsx",".pdf")),radioButtons(“选择”,“风险级别”,choices=list(“低风险”=“低”,“高风险”=“高”)),actionButton(“提交”,“提交”),mainPanel(“tableOutput”),downloadButton(“下载”,“下载”))服务器<- function(输入,输出){ mydf <- eventReactive(输入$提交,{检查所需的值(真实性)/ensure)值可用req(输入$select)req(输入$file1) inFile <-输入$file1如果(grepl("*.xlsx",inFile1) == TRUE){ file.rename(inFile$datapath,粘贴(inFile$datapath,inFile$datapath),".xlsx",sep =“”) wb <- read.xlsx(粘贴(inFile$datapath,".xlsx",sep = ""),1) nrow(wb) ->行if (输入$select == " low ") {低风险抽样(xlsx) if (行== 1) { outdf <- wbsample(行,1),}->如果(行>= 2和行<= 4) { outdf <- wbsample(行,1),}否则if (行>= 5和<= 12行){ outdf <- wbsample(行,2),} >= (行>= 13和行<= 52) { outdf <- wbsample(行,5),}>=(行>= 53和行<= 365) { outdf <- wbsample(行,15),}如果( == 1行){ outdf <- wbsample( >= 2&row <= 4) { outdf <- wbsample( <= 4){ outdf <- wbsample(<=4){ outdf <- wbsample(<=2)}{outdf<-wbsample(行,2),} else if (行>= 5&行<= 12) {outdf<-wbsample(行,行)),}如果(行>= 13 &行<= 52) { outdf <- wbsample(行,8),} if (行>= 53和行<= 365) { outdf <- wbsample(行,25),}>=(行> 365) { outdf <- wbsample(行,40),}}如果(grepl("*.pdf",inFile1) == TRUE) { outtable <- extract_tables(inFile$datapath) outtable[1] <- outtable[1] #从第一页df <- do.call(rbind,)#将矩阵转换为数据帧nrow(df) ->行,如果(输入$选择==“低”){低风险( == 1行)(==1行){ outdf <- dfsample(行,1),}==如果(行>= 2和行<= 4) { outdf <- dfsample(行,1),}==(行>= 5和行<= 12) { outdf <- dfsample(行,2),}否则if (行>= 13和<= 52行){ outdf <- dfsample(行,5),} >= (>= 53和<= 365行){ outdf <- dfsample(行,15),}>=(行> 365) { outdf <- dfsample(行,25),}{# == (pdf) if (行>= 1) { outdf <- dfsample(行,1),} if (行>= 2和<= 4行){ outdf <- dfsample(行,2),} <= (行>=5和行<= 12) { outdf <- dfsample(行,3),}否则if (行>= 13和<= 52行){ outdf <- dfsample(行,8),} >= (行>= 53和行<= 365) { outdf <- dfsample(行,25),}>=(行> 365) { outdf <- dfsample(行,40),)输出$ renderTable({ mydf() } }) shinyApp(ui = ui,server = server)

问题是,我不知道如何使下载按钮工作,以便当用户单击“下载”按钮时,所选的审计示例将被下载。

EN

回答 1

Stack Overflow用户

发布于 2017-12-10 13:18:38

与使用下载按钮不同,您可以使用DT包来呈现一个漂亮的表及其允许下载表的“按钮”扩展。

代码语言:javascript
复制
library(DT)
# in server:
output$contents <- DT::renderDataTable({
  datatable(mydf(), 
            extensions = 'Buttons', 
            options = list(dom = 'Bfrtip', buttons = 'excel'))
})
# in ui:
DT::dataTableOutput("contents")

有关“按钮”扩展的更多信息,请参见https://rstudio.github.io/DT/003-tabletools-buttons.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47736240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档