有没有办法下载闪亮应用程序中输出的弹性表?我知道这段代码用于将表格从闪亮的格式下载为 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)
是的,像这样:
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
等。这些功能有一些选项,请参阅文档。