我正在处理超过10万行的表并使用DT包(开发版本0.1.56)在Shiny App 中将其可视化.
此外,我使用DTExtensions作为:Buttons,以不同的格式下载数据.然而,虽然Scroller扩展也被激活,但我只能下载几行(不是所有数据).
示例代码:
library("shiny")
library("DT")
shinyApp(
ui = fluidPage(DT::dataTableOutput('tbl')),
server = function(input, output) {
output$tbl = DT::renderDataTable(
iris,extensions=c("Buttons",'Scroller'),options = list(dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),scrollY = 50,
scroller = TRUE
))
}
)
Run Code Online (Sandbox Code Playgroud)
另外如果我只运行R中的这部分代码并在查看器中获取数据表,我能够复制所有行,甚至可能如何?
library("DT")
datatable(
iris,
extensions = 'Buttons', options = list(
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
)
)
Run Code Online (Sandbox Code Playgroud)
我尝试过不同的方法:
scrollY =在选项列表中更改... - >它正在工作,但scrollY实际显示所有数据行的数量必须很大,因此可以完全下载 - >不好的方法,因为我的数据来自数据库,我获得了不同的行数加上它会使应用程序极其缓慢
使用pageLength选项: pageLength = ..., lengthMenu=c(..,..,..,..)
但是,根本不显示选择选项...
我有什么想法可以解决这个问题吗?
downloadHandler()方法,但我更喜欢这样做, DT因为可用的Extensions提供了漂亮和优雅的方式,允许一次下载不同格式的数据,如pdf,excel,csv和print.**我已经看到了同样的问题:
下载按钮仅使用Scroller在DataTables中下载145行
但是DT包装的含义没有回答
提前致谢
确实server = TRUE做到了。
这是代码,因为像我这样的某些人可能会将参数放在错误的位置。
library("shiny")
library("DT")
shinyApp(
ui = fluidPage(DT::dataTableOutput('tbl')),
server = function(input, output) {
output$tbl = DT::renderDataTable(server = FALSE,{
DT::datatable(iris,
extensions=c("Buttons",'Scroller'),
options = list(dom = 'Bfrtip',
buttons = c('copy', 'csv',
'excel', 'pdf',
'print'),
scrollY = 50,
scroller = TRUE)
)
})
}
)
Run Code Online (Sandbox Code Playgroud)