我正在尝试在表格上方添加下载按钮('复制',' csv',' excel',#39; pdf')在我的R Shiny应用程序中,但是当在内部使用数据表时,renderDataTable似乎不起作用。
output$mytable1 <- DT::renderDataTable(
datatable(
{ plots.dfs()[[1]] },
rownames = TRUE,
options = list(
fixedColumns = TRUE,
autoWidth = TRUE,
ordering = FALSE,
dom = 'tB',
buttons = c('copy', 'csv', 'excel', 'pdf')
),
class = "display"
))
当我在内部使用不包含DT :: datatable的DT :: renderDataTable时,renderDataTable运行良好,我有所有功能(过滤器,搜索字段等),下载按钮除外(我想添加的内容)
output$mytable1 = DT::renderDataTable({ plots.dfs()[[1]] })
你知道我做错了什么吗?谢谢你的帮助
答案 0 :(得分:3)
正如斯蒂芬在评论中所说,添加按钮的方法如下:
output$mytable1 <- DT::renderDataTable(
DT::datatable(
{ plots.dfs()[[1]] },
extensions = 'Buttons',
options = list(
paging = TRUE,
searching = TRUE,
fixedColumns = TRUE,
autoWidth = TRUE,
ordering = TRUE,
dom = 'tB',
buttons = c('copy', 'csv', 'excel')
),
class = "display"
))
答案 1 :(得分:2)
当我偶然发现这个解决方案时,它奏效了,但禁用了搜索和分页。添加一个最终对我有用的解决方案(dom = 'Bfrtip'):
datatable(data, extensions = "Buttons",
options = list(paging = TRUE,
scrollX=TRUE,
searching = TRUE,
ordering = TRUE,
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf'),
pageLength=5,
lengthMenu=c(3,5,10) ))
答案 2 :(得分:1)
添加一个关于允许下载整个表格的更明确的答案,因为我认为应该更清楚地概述。使用 renderDT({})
下载按钮仅下载当前显示的数据。您可以使用 renderDT(server = FALSE, {})
使按钮下载整个数据集,如下所示:
renderDT(server=FALSE,{
# Load data
data <- mtcars
# Show data
datatable(data, extensions = 'Buttons',
options = list(scrollX=TRUE, lengthMenu = c(5,10,15),
paging = TRUE, searching = TRUE,
fixedColumns = TRUE, autoWidth = TRUE,
ordering = TRUE, dom = 'tB',
buttons = c('copy', 'csv', 'excel','pdf')))
})