2016-05-28 17 views
5

Ho una tabella di dati fatto da dc.js e crossfilter.js, e voglio esportare quella tabella di file CSV ..esportare dati da dataTable dc.js in CSV

dataTable.width(960).height(800) 
.dimension(by_id) 
.group(function(d) { return "" 
}) 
.size(data.length)       
.columns([ 
    function(d) { return d.id; }, 
    function(d) { return d.name; }, 
    function(d) { return d.gender; }, 
    function(d) { return parseFloat(d.GPA).toFixed(2); }, 
    function(d) { return parseFloat(d.Major_GPA).toFixed(2); }, 
    function(d) { return parseFloat(d.Math_GPA).toFixed(2); }, 
    function(d) { return parseFloat(d.English_GPA).toFixed(2); }, 
    function(d) { return parseFloat(d.Science_GPA).toFixed(2); }, 
    function(d) { return parseFloat(d.Humanities_GPA).toFixed(2); } 
    ]) 
.sortBy(function(d){ return d.id; }) 
.order(d3.ascending); 

risposta

5

Si tratta di un comune richiesta, quindi ho aggiunto un esempio utilizzando FileSaver.js. (Ci sono probabilmente altri buoni modi per per un download dal browser, ma questo è quello che ho familiarità con.)

http://dc-js.github.io/dc.js/examples/download-table.html

La chiave è quello di recuperare tutti i dati dalla dimensione della tabella utilizzando dimension.top(Infinity) . Quindi puoi formattarlo usando d3.csv.format e scaricarlo usando il tuo metodo preferito. Qui, FileSaver utilizza Blob s come meccanismo:

var blob = new Blob([d3.csv.format(nameDim.top(Infinity))], 
         {type: "text/csv;charset=utf-8"}); 
    saveAs(blob, 'data.csv'); 
+0

Ecco un precedente [risposta utilizzando download.js] (http://stackoverflow.com/a/34793548/676195) – Gordon

+0

Questo è stato molto utile, grazie tanto. –

Problemi correlati