JavaScript in browser download of array in CSV format
Thu, 15 February 2018
function.js
function csvArrayDownload(data, name) {
/**
* Download a CSV file, in browser for the data provided.
*
* [
* [
* 'Column 1 title', 'Column 2 title'
* ],
* [
* 'value_2_a', 'value_2_b'
* ],
* [
* 'value_3_a', 'value_3_b'
* ],
*
* ]
*
* @param {array} data
* @param {string} name
*/
var csv = "data:text/csv;charset=utf-8,";
data.forEach(function(rowArray){
var row = rowArray.join(",");
csv += row + "\\\\\\\\r\\\\\\\\n";
});
var encodedUri = encodeURI(csv);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", name);
document.body.appendChild(link);
link.click();
}
usage.html
<script>
csvArrayDownload(
[
["name", "age"],
["Joe", "21"],
["Jane", "18"]
],
"my-file.csv"
)
</script>