从 DT 数据表输出中删除 HTML 标签

问题描述 投票:0回答:1

尝试使用 expss 包制作闪亮的表格,但是在下载数据时,HTML 标签也出现在不应该出现的列标题中。

任何人都可以帮忙吗?

#install.packages("expss")
library("expss")
library(shiny)
shinyApp(
ui = fluidPage(fluidRow(column(12, dataTableOutput('txt')))),
server = function(input, output) {
  table <- reactive({
  data(mtcars)
  var_text = "vs_sum = vs==0, am_sum = am==1, gear_sum = gear == 4|gear==5, carb_sum = total(carb)"
  var_expr = parse(text = sprintf("data.frame(%s)", var_text)) # parse text string to expression

  var_list = calc(mtcars, 1*eval(var_expr)) %>% # caclulate data.frame with zero/one columns
    prepend_names() %>% # add names as labels
    mis_val(0) %>% # we don't need columns with FALSE condition
    set_val_lab(c("|" = 1)) # suppress values in table - we don't want to see TRUE/1

  mtcars %>%
    tab_prepend_values %>%
    tab_cols(total(), var_list) %>%
    tab_cells(cyl) %>%
    tab_stat_cpct() %>%
    tab_pivot()      
})


output$txt <- renderDataTable({
  as.datatable_widget(table(), rownames = F,filter = 'top', extensions = "Buttons",
                      options = list(
                        dom = 'Bfrtip',
                        scrollX = TRUE,
                        columnDefs = list(list(className = 'dt-center', targets = "_all")),
                        buttons = list(
                          'colvis',
                          list(
                            extend = 'collection',
                            buttons = c('csv', 'excel', 'pdf'),
                            text = 'Download'
                          )
                        )
                      ))
}, server = F)

} )

下载输出时 th { text-align:center; } th{border: 1pxsolid #DDD 与列标题一起出现,我在这里缺少什么。你能推荐一下吗

r shiny dt expss
1个回答
0
投票

导出选项:{ 列: 'th:not(:last-child)', 格式: { 主体:函数(数据,行,列,节点){ 如果(列===7){ 返回数据.replace(/]+>/g, ''); } 返回数据; }, 标题:函数(数据、列、行){ 如果(列== 0){ 返回“总计”; } 如果(列== 1){ 返回“Vs Sum”; } 如果(列== 2){ 返回“齿轮总和”; } 如果(列== 3){ 返回'carb_sum'; }

            }
        }
    }

你可以写这样的东西。

© www.soinside.com 2019 - 2024. All rights reserved.