forked from philipmulcahy/azad
-
Notifications
You must be signed in to change notification settings - Fork 0
/
csv.js
49 lines (46 loc) · 1.65 KB
/
csv.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/* Copyright(c) 2017 Philip Mulcahy. */
/* jshint strict: true, esversion: 6 */
var amazon_order_history_csv = (function(){
"use strict";
function download(table) {
var tableToArrayOfArrays = function(table) {
var rows = table.rows;
var result = [];
for(var i=0; i<rows.length; ++i) {
var cells = rows[i].cells;
var cell_array = [];
for(var j=0; j<cells.length; ++j) {
cell_array.push(cells[j].textContent);
}
result.push(cell_array);
}
return result;
};
var processRow = function(row) {
var processCell = function (cell) {
if (cell === null) {
return '';
}
var processed = cell.replace(/"/g, '""');
if (processed.search(/("|,|\n)/g) >= 0) {
processed = '"' + processed + '"';
}
return processed;
};
return row.map(processCell).join(',');
};
var csvFile = '\ufeff' + tableToArrayOfArrays(table).map(processRow).join('\n');
var blob = new Blob([csvFile], { type: 'text/csv;charset=utf-8;' });
var link = document.createElement("a");
var url = URL.createObjectURL(blob);
link.setAttribute("href", url);
link.setAttribute("download", 'amazon_order_history.csv');
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
return {
download: download
};
})();