简体   繁体   中英

Export Data from dc.js dataTable into CSV

I have a data table done by dc.js and crossfilter.js, and i want to export that table to CSV file..

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);

This is a common request, so I've added an example using FileSaver.js . (There are probably other good ways to to a download from the browser, but this is the one I'm familiar with.)

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

The key is to fetch all the data from the table's dimension using dimension.top(Infinity) . Then you can format it using d3.csv.format and download it using your preferred method. Here, FileSaver uses Blob s as the mechanism:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM