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

Supress rownames in data table on download only

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

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 选项将 class 分配给此列,例如rownames,并使用 exportOptions 选项 select 没有此 class 的列,使用 :not select 或:

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)"
        )
      )
    )
  )
)