仅在下载时抑制数据表中的行名

问题描述

我有以下代码允许我在 Excel 中下载数据表。下面我禁止名称。但是,是否可以仅抑制下载中的行名称?当我在 Shiny 中查看表格时,我仍然希望它们出现。

format_fixed_table <- function(input_data,file_name){
  result <- datatable(input_data,extensions = 'Buttons',rownames= FALSE,options = list(dom = 'Bfrtip',scrollX = TRUE,lengthMenu = c(10,20,50),pageLength = 10,buttons = list(list(extend='excel',filename=file_name)),))
}

解决方法

行名称的列是第 0 列。您可以使用 columnDefs 选项为此列分配一个类,例如rownames,并使用 exportOptions 选项选择没有此类的列,使用 :not 选择器:

library(DT)

datatable(
  iris[1:5,],extensions = 'Buttons',rownames= TRUE,options = list(
    dom = 'Bfrtip',columnDefs = list(
      list(
        targets = 0,className = "rownames"
      )
    ),buttons = list(
      list(
        extend = 'excel',filename = "XLSXFILE",exportOptions = list(
          columns = ":not(.rownames)"
        )
      )
    )
  )
)