我在FlexDashboard中使用R的DT。我可以使用导出按钮,但是我希望能够使导出仅导出通过行或使用DT搜索功能选择的数据。
我已经看过DT手册,但是并没有弄清楚我将如何处理它。
datatable(
dept_table,
rownames = FALSE,
extensions = "Buttons",
options =
list(
searching = TRUE,
pageLength = 200,
scrollX = TRUE,
scrollY = TRUE,
dom = "BRSpfrti",
buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
)
因此,如果我有一个包含128行的表,并且使用搜索只选择了10行,则导出中应该只包含那10行。
答案 0 :(得分:1)
使用扩展名Select
可以实现。包括此扩展名,设置选项select = TRUE
并设置如下按钮:
list(
extend = "csv",
text = 'CSV',
exportOptions = list(modifier = list(selected = TRUE))
)
也就是说:
datatable(
iris,
rownames = FALSE,
extensions = c("Buttons", "Select"),
options =
list(
select = TRUE,
searching = TRUE,
scrollX = TRUE,
scrollY = TRUE,
dom = "BRSpfrti",
buttons = list(
list(
extend = "copy",
text = 'Copy',
exportOptions = list(modifier = list(selected = TRUE))
),
list(
extend = "csv",
text = 'CSV',
exportOptions = list(modifier = list(selected = TRUE))
),
list(
extend = "excel",
text = 'Excel',
exportOptions = list(modifier = list(selected = TRUE))
),
list(
extend = "pdf",
text = 'PDF',
exportOptions = list(modifier = list(selected = TRUE))
),
list(
extend = "print",
text = 'Print',
exportOptions = list(modifier = list(selected = TRUE))
)
)
)
)
答案 1 :(得分:0)
也许最好的方法是在DT可视化之前添加一个或几个会影响您数据框的闪亮按钮(而不是直接在DT生成的表上使用过滤器)并导出整个数据集。
您使用搜索DT创建的过滤器不会存储在任何地方,因此很难仅导出与此研究相对应的行。