vue js中,利用json数据临时生成一个可下载csv的功能

发布时间 2023-12-21 15:34:54作者: iDEAAM
downloadCSV(data, fileName) {
      
      // 将数据转换为CSV格式
      const csv = this.convertToCSV(data);

      // 创建一个Blob对象
      const blob = new Blob([csv], { type: 'text/csv' });

      // 创建一个下载链接
      const url = URL.createObjectURL(blob);

      // 创建一个<a>元素并设置下载链接
      const link = document.createElement('a');
      link.href = url;
      link.download = fileName+'_data.csv';

      // 模拟点击下载链接
      link.click();

      // 释放URL对象
      URL.revokeObjectURL(url);
    },
    convertToCSV(jsonString) {
      const jsonArray = JSON.parse(jsonString);
      const header = Object.keys(jsonArray[0]).map(key => `${key}`).join(',') + '\n';
      const rows = jsonArray.map(obj => Object.values(obj).map(value => `="${value}"`).join(',')).join('\n');
      return header + rows;
    }