如何在 Shiny 中使用 DataTable Extensions 更改下载文件中的名称?
Posted
技术标签:
【中文标题】如何在 Shiny 中使用 DataTable Extensions 更改下载文件中的名称?【英文标题】:How can I change the name inside the downloaded file with DataTable Extensions in Shiny? 【发布时间】:2021-08-20 11:58:53 【问题描述】:我创建了一个闪亮的应用程序,我可以在其中下载各种文件格式(pdf、excel、csv)的表格。但是,我发现它们每个都有与我的 Shiny App 相同的标题(“This is my table in Shiny”)。
我使用来自 DataTable 的 extension。
有人知道我是否可以从下载的文件中删除该标题吗?
这就是我的应用程序的外观。
这些是下载的文件(excel 和 pdf)
我的代码:
library(shiny)
library(DT)
ui <- fluidPage(
# Application title
titlePanel("This is my table in Shiny")
, mainPanel(
DT::dataTableOutput("fancyTable")
)
)
server <- function(input, output)
output$fancyTable <- DT::renderDataTable(
datatable( data = mtcars
, extensions = 'Buttons'
, options = list(
dom = "Blfrtip"
, buttons =
list("copy", list(
extend = "collection"
, buttons = c("csv", "excel", "pdf")
, text = "Download"
) )
, lengthMenu = list( c(10, 20, -1)
, c(10, 20, "All")
)
, pageLength = 10
)
)
)
# Run the application
shinyApp(ui = ui, server = server)
提前致谢
问候
【问题讨论】:
您可以使用 DataTablestitle
选项来覆盖网页中的值(可能当前是根据标题的 <title>
标签设置的)。只需使用title: ""
。我对 r 语法不太熟悉,但我认为:, text = "Download", title = ""
应该可以。请参阅文档here。您还可以使用 r 用于 null
的任何内容。
@andrewjames 感谢您的帮助!我花了一些时间,我不得不尝试很多东西,但我成功了!
【参考方案1】:
尝试了很多东西并搜索了其他帖子...我找到了解决方案!
我需要将每个选项放入一个列表中,以便能够为每个选项添加“标题”参数。
library(shiny)
library(DT)
ui <- fluidPage(
# Application title
titlePanel("This is my table in Shiny")
, mainPanel(
DT::dataTableOutput("fancyTable")
)
)
server <- function(input, output)
output$fancyTable <- DT::renderDataTable(
datatable( data = mtcars
, extensions = 'Buttons'
, options = list(
dom = "Blfrtip",
buttons =
list("copy", list(
extend = "collection",
buttons = list(
list(extend = "csv", title = "MY TITLE"),
list(extend = "excel", title = "MY TITLE"),
list(extend = "pdf", title = "MY TITLE")),
text = "Download"
)),
lengthMenu = list( c(10, 20, -1)
, c(10, 20, "All")
),
pageLength = 10
)
)
)
# Run the application
shinyApp(ui = ui, server = server)
在这里你可以看到新标题!
【讨论】:
以上是关于如何在 Shiny 中使用 DataTable Extensions 更改下载文件中的名称?的主要内容,如果未能解决你的问题,请参考以下文章