Расширение кнопки для загрузки всех данных или только видимых данных - PullRequest
0 голосов
/ 24 мая 2018

С расширением кнопки для пакета DT есть способ указать, что кнопки загружают либо (1) все данные, передающие данные, либо (2) только данные на видимой странице.

Ниже приведен пример из документации .

datatable(
  iris, extensions = 'Buttons', options = list(
    dom = 'Bfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
  )
)

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

вы ищете modifiers: page: selected.Вот рабочий пример

ui <- fluidPage(
  title = "Examples of DataTables",
  sidebarLayout(
    mainPanel(
      tabsetPanel(
        id = 'dataset',
        tabPanel("diamonds", DT::dataTableOutput("mytable1"))
      )
    )
  )
)

server <- function(input, output) {

  # choose columns to display
  diamonds2 = diamonds[sample(nrow(diamonds), 1000), ]
  output$mytable1 <- DT::renderDataTable({
    DT::datatable(diamonds2,
                  extensions = 'Buttons',
                  options = list(
                    dom = 'Bfrtip',
                    buttons = 
                      list(
                        list(
                        extend = 'csv',
                        buttons = c('csv'),
                        exportOptions = list(
                          modifiers = list(page = "current")
                        )
                      ))
                    )
                  )
  })

}

shinyApp(ui, server)

надеюсь, это поможет!

0 голосов
/ 24 мая 2018

См. Этот ответ: Кнопки DT: кнопка загрузки со скроллером загружает только несколько строк

Возможность экспорта кнопками всех данных или только видимых данных определяется аргументом server вDT::renderDT вызов функции.Если server=FALSE, то кнопки будут экспортировать все данные в таблице, тогда как если server=TRUE, они будут экспортировать только видимые данные.

Вы можете установить аргумент server с переменной, чтобы сделать эту опцию доступной для выбора..

output$table <- DT::renderDT(server = input$download_all, {
    DT::datatable( ... )
}

Другой вариант, на который вы можете обратить внимание, - это параметр exportOptions: modifiers: selected, который определяет, загружать ли только выбранные строки (по умолчанию) или все строки.Вы можете прочитать об этой опции здесь: https://datatables.net/extensions/buttons/examples/print/select.html

Обратите внимание, что ваши пользователи могут столкнуться с проблемами производительности и памяти, используя server=FALSE, если ваша таблица данных очень велика.

...