从闪亮的应用程序下载格式化的弹性表

问题描述 投票:0回答:1

有没有办法下载闪亮应用程序中输出的弹性表?我知道这段代码用于将表格从闪亮的格式下载为 csv 格式,但我希望能够将弹性表下载到已格式化的单词(保持弹性表格式)。

# Downloadable csv of selected dataset ----
  output$downloadData <- downloadHandler(
    filename = function() {
      paste(input$dataset, ".csv", sep = "")
    },
    content = function(file) {
      write.csv(datasetInput(), file, row.names = FALSE)
    }
  )

在闪亮的示例中创建弹性表

library(shiny)
library(flextable)
library(dplyr)

dat <- mtcars %>%
  mutate(car = rownames(.)) %>%
  select(car, everything())

ui <- fluidPage(
  titlePanel("mtcars"),
  sidebarLayout(
    sidebarPanel(
      sliderInput("mpg", "mpg Limit", min = 11, max = 33, value = 20)
    ),
    mainPanel(uiOutput("mtcars_ft"))
  )
)

server <- function(input, output) {
  output$mtcars_ft <- renderUI({
    req(input$mpg)
    filter(dat, mpg <= input$mpg) %>%
      flextable() %>%
      theme_vader() %>%
      autofit() %>%
      htmltools_value()
  })
}

# Run the application
shinyApp(ui = ui, server = server)
r shiny shinydashboard shinyapps shiny-reactivity
1个回答
0
投票

是的,像这样:

library(shiny)
library(flextable)
library(dplyr)

dat <- mtcars %>%
  mutate(car = rownames(.)) %>%
  select(car, everything())

ui <- fluidPage(
  titlePanel("mtcars"),
  sidebarLayout(
    downloadButton("dwnld"),
    sidebarPanel(
      sliderInput("mpg", "mpg Limit", min = 11, max = 33, value = 20)
    ),
    mainPanel(uiOutput("mtcars_ft"))
  )
)

server <- function(input, output, session) {
  
  fxtable <- reactive({
    filter(dat, mpg <= input$mpg) %>%
      flextable() %>%
      theme_vader() %>%
      autofit()    
  })
  
  output$mtcars_ft <- renderUI({
      fxtable() %>% htmltools_value()
  })
  
  output$dwnld <- downloadHandler(
    filename = function() {
      "flextable.html"
    },
    content = function(file) {
      save_as_html(fxtable(), path = file)
    }
  )
}

# Run the application
shinyApp(ui = ui, server = server)

还有其他保存功能:

save_as_docx
等。这些功能有一些选项,请参阅文档。

© www.soinside.com 2019 - 2024. All rights reserved.