Skip to content

Instantly share code, notes, and snippets.

Created July 25, 2016 12:04
Show Gist options
  • Save anonymous/815fb404daa94979596db7731934d5bd to your computer and use it in GitHub Desktop.
Save anonymous/815fb404daa94979596db7731934d5bd to your computer and use it in GitHub Desktop.
<!doctype html>
<html>
<head></head>
<body>
<a href='#' onclick='downloadCSV({ filename: "stock-data.csv" });'>Download CSV</a>
<script type="text/javascript">
// var stockData55 = [{"Metrics":"Insurance Sales","20":20110.0,"21":21358.0,"22":20211.0,"23":22971.0,"24":19520.0,"25":22911.0,"26":21856.0,"27":20532.0}];
var stockData55 = Parse the output string from csv_table_output (see image) to this variable;
function convertArrayOfObjectsToCSV(args) {
var result, ctr, keys, columnDelimiter, lineDelimiter, data;
data = args.data || null;
if (data == null || !data.length) {
return null;
}
columnDelimiter = args.columnDelimiter || ',';
lineDelimiter = args.lineDelimiter || '\n';
keys = Object.keys(data[0]);
result = '';
result += keys.join(columnDelimiter);
result += lineDelimiter;
data.forEach(function(item) {
ctr = 0;
keys.forEach(function(key) {
if (ctr > 0) result += columnDelimiter;
result += item[key];
ctr++;
});
result += lineDelimiter;
});
return result;
}
function downloadCSV(args) {
var data, filename, link;
var csv = convertArrayOfObjectsToCSV({
data: stockData55
});
if (csv == null) return;
filename = args.filename || 'export.csv';
if (!csv.match(/^data:text\/csv/i)) {
csv = 'data:text/csv;charset=utf-8,' + csv;
}
data = encodeURI(csv);
link = document.createElement('a');
link.setAttribute('href', data);
link.setAttribute('download', filename);
link.click();
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment