2016-05-28 13 views
5

Mam tabelę danych wykonanej przez dc.js i crossfilter.js, i chcę, aby wyeksportować tabelę do pliku CSV ..Export danych z dc.js DataTable do 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); 

Odpowiedz

5

Jest to wspólny Żądanie, dlatego dodałem przykład używając FileSaver.js. (Istnieją zapewne inne dobre sposoby do pobrania w przeglądarce, ale jest to jeden jestem zaznajomiony.)

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

Najważniejsze jest, aby pobrać wszystkie dane z wymiaru stołu używając dimension.top(Infinity) . Następnie możesz sformatować go za pomocą d3.csv.format i pobrać go przy użyciu preferowanej metody. Tutaj FileSaver wykorzystuje Blob S jako mechanizmu:

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

Oto wcześniej [odpowiedź za pomocą download.js] (http://stackoverflow.com/a/34793548/676195) – Gordon

+0

To było bardzo pomocne, dziękuję bardzo dużo. –