2016-05-17 7 views
3

Ich möchte eine glänzende App erstellen, die eine Datenbankabfrage durchführt. Die (einfache) Idee besteht darin, eine Tabelle zu erstellen, bedingte Formatierung auf die Spalten anzuwenden und der gemeldeten Tabelle das Speichern in Excel zu erlauben. Ich habe verschiedene Lösungen ausprobiert, aber die Verwendung eines Datatable-Download-Buttons erschien mir am bequemsten.R Datatable Button mit bedingter Formatierung

Nach eingehender Suche konnte ich einen Download-Button (aktuelles dt-Paket von github) anwenden und eine bestimmte Formatierung (formatStyle) in der Browser-Anzeige der shiny-app anwenden. Dadurch kann ich in Zukunft bedingte Formatierungen für die einzelnen Spalten anwenden. Beim Speichern geht diese Formatierung jedoch in der gespeicherten Datei verloren (siehe Codefragment unten).

In meinem Verständnis ist der Grund dafür, dass die FormatStyle-Funktion nur nach dem Datatable-Aufruf angewendet wird. Wäre es möglich, die formatStyle-Funktion früher anzuwenden? Der Grund für die Erstellung des Ergebnistab-Objekts ist, dass die formatStyle-Funktion auf bestimmte Spalten angewendet wird, die durch ihre Namen ausgewählt werden, während die Tabellenfunktion in der glänzenden reaktiven Umgebung generiert wird.

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') 
     }) 

Antwort

1

Der Export-Button von Databases mit der Option Excel ist anscheinend ein eingehüllter CSV-Export. Formatierung kann daher nicht exportiert werden. Meine Problemumgehung verwendet jetzt den shiny-Export-Button und das XLConnect-Paket.

Ich konnte keine Lösung finden, um die Arbeitsmappe (erstellt über XLConnect im downloadHandler) im Browser anzuzeigen. Daher werde ich eine renderDataTable-Funktion ohne Formatierung für die Browser-Anzeige verwenden, da das Definieren der (zahlreichen) Formatierungsbedingungen zweimal in verschiedenen Paketen nicht praktikabel ist.

+0

Wo können Sie formatStyle und leicht bedingte Format die Datentabelle aufrufen? Ich suche nach einer Funktion, um das leicht zu tun, Jede Hilfe würde geschätzt werden – AbeeCrombie

Verwandte Themen