分别导出csv格式和xls两种格式的表格

    1. function exportCsv(obj) {
    2. // 列表头部
    3. let title = obj.title;
    4. // 拿到对象数据的键,因为是一样的只去第一个即可
    5. let dataKey = Object.keys(obj.data[0]);
    6. // 列表内容
    7. let data = obj.data;
    8. // 拼接 enter 键或者换行符
    9. // 导出的是csv文件
    10. /*
    11. let str = [];
    12. str.push(obj.title.join(",") + "\r\n");
    13. for (let i = 0; i < data.length; i++) {
    14. let temp = [];
    15. for (let j = 0; j < dataKey.length; j++) {
    16. if (j + 1 == dataKey.length) {
    17. // 添加‘\t’,在数字超过10位时,不以科学计数显示,而是完整显示
    18. temp.push(`\t${data[i][dataKey[j]]}`);
    19. } else {
    20. temp.push(data[i][dataKey[j]]);
    21. }
    22. }
    23. // 拼接 enter 键或者换行符
    24. str.push(temp.join(",") + "\r\n");
    25. }
    26. JSON.stringify(str)
    27. let blob = new Blob(["\uFEFF" + str.join("")], {type: "text/csv;charset=utf-8", });
    28. const url = window.URL.createObjectURL(blob); */
    29. // 导出的是xls格式
    30. let str = "";
    31. str += obj.title.join(",") + "\r\n";
    32. for (let i = 0; i < data.length; i++) {
    33. let temp = [];
    34. for (let j = 0; j < dataKey.length; j++) {
    35. if (j + 1 == dataKey.length) {
    36. // 添加‘\t’,在数字超过10位时,不以科学计数显示,而是完整显示
    37. temp.push(`\t${data[i][dataKey[j]]}`);
    38. } else {
    39. temp.push(data[i][dataKey[j]]);
    40. }
    41. }
    42. // 拼接 enter 键或者换行符
    43. str += temp.join(",") + "\r\n";
    44. }
    45. // encodeURIComponent解决中文乱码
    46. const url =
    47. "data:application/vnd.ms-excel;charset=utf-8,\ufeff" + (str);
    48. let downloadLink = document.createElement("a");
    49. downloadLink.href = url;
    50. downloadLink.download = "test.xls"; // 导出的文件名 csv格式的在此文件后缀改成csv
    51. downloadLink.click();
    52. window.URL.revokeObjectURL(url);
    53. }
    54. function exprot1() {
    55. exportCsv({
    56. title: ["国家", "首都", "GDP"],
    57. data: [
    58. { country: "中国", city: "北京", gdp: "123456789123" },
    59. { country: "美国", city: "华盛顿", gdp: "123456789123" },
    60. { country: "巴西", city: "巴西利亚", gdp: "123456789123" },
    61. { country: "英国", city: "伦敦", gdp: "123456789123" },
    62. ],
    63. });
    64. }