数组元素为数组

  1. var data = [
  2. ["rahul", "delhi", "accounts dept"],
  3. ["rajeev", "UP", "sales dept"]
  4. ];
  5. exportData(data);
  6. function exportData(data) {
  7. let csvContent = "data:text/csv;charset=utf-8,";
  8. data.forEach(function(rowArray) {
  9. let row = rowArray.join(",");
  10. csvContent += row + "\r\n";
  11. });
  12. // 或者使用map及箭头函数可以让代码更简短
  13. // csvContent = "data:text/csv;charset=utf-8," + data.map(e => e.join(",")).join("\n");
  14. let encodedUri = encodeURI(csvContent);
  15. // window.open(encodedUri);
  16. let link = document.createElement("a");
  17. link.setAttribute("href", encodedUri);
  18. link.setAttribute("download", "my_data.csv");
  19. document.body.appendChild(link);
  20. link.click();
  21. }

数组元素为对象

  1. var data = [
  2. { name: 'jack', age: 20 },
  3. { name: 'rose', age: 18 },
  4. ];
  5. exportData(data);
  6. function exportData(data) {
  7. let csvContent = "data:text/csv;charset=utf-8,";
  8. data.forEach(function(row, index) {
  9. // 将对象元素的属性名称作为表头
  10. if (index == 0) {
  11. csvContent += Object.keys(row).join(",") + "\r\n";
  12. }
  13. csvContent += Object.values(row).join(",") + "\r\n";
  14. });
  15. let encodedUri = encodeURI(csvContent);
  16. // window.open(encodedUri);
  17. let link = document.createElement("a");
  18. link.setAttribute("href", encodedUri);
  19. link.setAttribute("download", "my_data.csv");
  20. document.body.appendChild(link);
  21. link.click();
  22. }