Расширение R Datatable Button для загрузки подмножества столбцов - PullRequest
0 голосов
/ 07 августа 2020

Вот воспроизводимый пример: и имя файла, и заголовок, и другие расширения Button работают, за исключением выбора столбца с помощью exportOptions:

datatable(mtcars,  
          rownames = FALSE,
          extensions = 'Buttons', 
          options = list(
              ordering=F,
              pageLength = -1,
              dom = 'Bt',
              buttons = list(list(
                  extend = 'collection',
                  buttons = list(
                      list(extend = 'excel', filename = "mtcars", title = "")),
                  text = 'Download',
                  exportOptions = list(
                      columns = c(1:4)
                  )
              ))
          )
) 

В соответствии с примерами здесь: https://datatables.net/extensions/buttons/examples/html5/columns.html It следует экспортировать только первые 4 столбца

Не отвечает кнопка загрузки: не отвечает кнопка загрузки

РЕДАКТИРОВАТЬ: Нашел вариант, который запрещает загрузку: rownames = FALSE

> sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.3 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3.10.3
LAPACK: /usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3.10.3

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                  LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] plotly_4.9.0          ggplot2_3.2.1         shinycssloaders_1.0.0 DT_0.9                plyr_1.8.4            dplyr_0.8.3           dashboardthemes_1.1.1
[8] shinydashboard_0.7.1  shiny_1.3.2          

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.2        pillar_1.4.2      compiler_3.6.1    later_0.8.0       tools_3.6.1       digest_0.6.20     viridisLite_0.3.0 lifecycle_0.1.0   jsonlite_1.7.0   
[10] tibble_2.1.3      gtable_0.3.0      pkgconfig_2.0.2   rlang_0.4.7       rstudioapi_0.10   crosstalk_1.0.0   yaml_2.2.0        xfun_0.9          httr_1.4.2       
[19] withr_2.1.2       vctrs_0.3.2       htmlwidgets_1.3   grid_3.6.1        tidyselect_1.1.0  glue_1.3.1        data.table_1.12.2 R6_2.4.0          tidyr_1.0.0      
[28] purrr_0.3.2       magrittr_1.5      scales_1.0.0      promises_1.0.1    htmltools_0.3.6   assertthat_0.2.1  mime_0.7          xtable_1.8-4      colorspace_1.4-1 
[37] httpuv_1.5.2      lazyeval_0.2.2    munsell_0.5.0     markdown_1.1      crayon_1.3.4     

Ответы [ 2 ]

2 голосов
/ 08 августа 2020

Выбранный вами вариант buttons неверен:

          buttons = list(list(
              extend = 'collection',
              buttons = list(
                  list(extend = 'excel', filename = "mtcars", title = "")),
              text = 'Download',
              exportOptions = list(
                  columns = c(1:4)
              )
          ))

Вы определенно хотите:

          buttons = list(
              list(
                extend = 'excel',
                filename = "mtcars", 
                title = "",
                text = 'Download',
                exportOptions = list(
                  columns = c(1:4)
                )
             )
           )
0 голосов
/ 07 августа 2020

Кажется, это работает для csv:

  datatable(
    mtcars,
    extensions = c("Buttons"),
    options = list(
      ordering=F,
      pageLength = -1,
      dom = 'Bt',
      buttons = list(
        list(extend = "csv", text = "Download Results", filename = "mtcars",
             exportOptions = list(
               columns = c(1:4)
             )
        )
      )
    )
  )
...