// let arr = ['a', 'b', 'c', '\n', 'x', 'y', 'z'] function arr_to_csv_string(arr) { let csv_string = ''; let n = arr.length - 1; for (let i = 0; i < n; i++) { csv_string += '"' + arr[i] + '",'; // USING DOUBLE-QUOTES TO WRAP EACH ELEMENT } csv_string += '"' + arr[n] + '"'; // WRAP IN DOUBLE-QUOTES return csv_string; }
| a | b | c |
| x | y | z |
// arr = [['a', 'b', 'c'], ['p', 'q', 'r'], ['x', 'y', 'z']] function arr_of_arr_to_csv_string(arr) { let csv_string = ''; let n = arr.length; // EACH ROW for (let i = 0; i < n; i++) { csv_string += arr_to_csv_string(arr[i]); csv_string += '\n'; } return csv_string; }
function export_csv_string(csv_string) {
let a = document.createElement('a');
a.href = 'data:,' + encodeURI(csv_string); // THIS IS REALLY KEY
a.target = '_blank';
a.download = 'name.csv';
a.click();
a.remove();
}
function export_as_string(arr) {
let x = JSON.stringify(arr);
let a = document.createElement('a');
a.href = 'data:,' + encodeURI(x);
a.target = '_blank';
a.download = '.json';
a.click();
a.remove();
}
// think of \n as being on the same line as 'c'
let arr = ['a','b','c','\n','x','y','z'];
let csv_string = arr_to_csv_string(arr);
export_csv_string(csv_string);
function arr_to_csv_string(arr) {
let csv_string = '';
let n = arr.length - 1;
for (let i = 0; i < n; i++) {
csv_string += '"' + arr[i] + '",';
}
csv_string += '"' + arr[n] + '"';
return csv_string;
}
function arr_of_arr_to_csv_string(arr) {
let csv_string = '';
let n = arr.length;
for (let i = 0; i < n; i++) {
csv_string += arr_to_csv_string(arr[i]);
csv_string += '\n';
}
return csv_string;
}
function export_csv_string(csv_string) {
let a = document.createElement('a');
a.href = 'data:,' + encodeURI(csv_string);
a.target = '_blank';
a.download = 'name.csv';
a.click();
a.remove();
}