Advertisement
krot

exportToCsv

Mar 6th, 2017
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function exportToCsv(filename, rows) {
  2.         var processRow = function (row) {
  3.             var finalVal = '';
  4.             for (var j = 0; j < row.length; j++) {
  5.                 var innerValue = row[j] === null ? '' : row[j].toString();
  6.                 if (row[j] instanceof Date) {
  7.                     innerValue = row[j].toLocaleString();
  8.                 };
  9.                 var result = innerValue.replace(/"/g, '""');
  10.                 if (result.search(/("|,|\n)/g) >= 0)
  11.                     result = '"' + result + '"';
  12.                 if (j > 0)
  13.                     finalVal += ',';
  14.                 finalVal += result;
  15.             }
  16.             return finalVal + '\n';
  17.         };
  18.  
  19.         var csvFile = '';
  20.         for (var i = 0; i < rows.length; i++) {
  21.             csvFile += processRow(rows[i]);
  22.         }
  23.  
  24.         var blob = new Blob([csvFile], { type: 'text/csv;charset=utf-8;' });
  25.         if (navigator.msSaveBlob) { // IE 10+
  26.             navigator.msSaveBlob(blob, filename);
  27.         } else {
  28.             var link = document.createElement("a");
  29.             if (link.download !== undefined) { // feature detection
  30.                 // Browsers that support HTML5 download attribute
  31.                 var url = URL.createObjectURL(blob);
  32.                 link.setAttribute("href", url);
  33.                 link.setAttribute("download", filename);
  34.                 link.style.visibility = 'hidden';
  35.                 document.body.appendChild(link);
  36.                 link.click();
  37.                 document.body.removeChild(link);
  38.             }
  39.         }
  40.     }
  41.    
  42.    
  43.    
  44. exportToCsv('export.csv', [
  45.     ['name','description'],
  46.   ['david','123'],
  47.   ['jona','""'],
  48.   ['a','b'],
  49.  
  50. ])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement