带有条件格式的R数据表按钮

时间:2016-05-17 15:24:08

标签: r datatable export-to-excel conditional-formatting

我想创建一个执行数据库查询的闪亮应用。 (简单)的想法是创建一个表,在列上应用条件格式并允许报告的表保存到excel。我尝试了不同的解决方案,但使用数据表下载按钮似乎是最方便的。

经过大量搜索后,我设法应用了一个下载按钮(来自github的更新的dt-package),并在shiny-app的浏览器显示中应用了一个特定的格式(formatStyle)。这将允许我将来为唯一列应用条件格式。但是,使用保存按钮时,此格式会在保存的文件中丢失(请参阅下面的代码片段)。

根据我的理解,原因是formatStyle函数仅在数据表调用之后应用。有没有办法提前应用formatStyle函数?创建resulttab-object的原因是,formatStyle-function应用于由其名称选择的特定列,而tabelle-function则在闪亮的reactive-environment中生成。

output$tab <- DT::renderDataTable({
   resulttab <- tabelle() 
    datatable(resulttab, extensions = 'Buttons', options = list(
      dom = 'Bfrtip',
      buttons = 
        list('copy', 'print', list(
          extend = 'collection',
          buttons = list(list(extend='csv',
                              filename = 'blBericht'),
                         list(extend='excel',
                              filename = 'blBericht'),
                         list(extend='pdf',
                              filename= 'blBericht')),
          text = 'Download')))) %>%  formatStyle('Tribrommethan',  color = 'red', backgroundColor = 'orange', fontWeight = 'bold')
      })

1 个答案:

答案 0 :(得分:1)

带有选项excel的数据表的Export-Button显然是一个包装的csv-export。因此无法导出格式。我的解决方法现在使用shiny-Export-Button和XLConnect包。

我找不到在浏览器中显示工作簿(通过downloadHandler中的XLConnect创建)的解决方案。因此,我将使用renderDataTable函数而不对浏览器显示进行格式化,因为在不同的包中定义两次(多种)格式化条件是不可行的。