Javascript 将长字符串编码为 csv 失败

标签 javascript csv urlencode

我在 javascript 中有一个方法,它返回一个以逗号分隔的长字符串,然后我需要使用该字符串创建一个 csv 文件,问题是当我有一个长字符串时,它什么也不做

这就是我创建文件的方式

let csvContent2 = csv2;
var encoding = "data:text/csv;charset=utf-8,%EF%BB%BF";

link2 = document.createElement("a");
link2.setAttribute("download", filename + "DOC.csv");
link2.setAttribute("href", encoding + encodeURIComponent(csvContent2));

当我尝试触发 link2.click() 并检查 csv 文件时,它什么也不做

最佳答案

使用URL.createObjectURL

function downloadAsCSV(longCSVString, fileName) {

  const csvBlob = new Blob([longCSVString], {
    type: 'text/csv;charset=utf-8;'
  });

  //for IE11 & Edge
  if (navigator.msSaveBlob) {
    navigator.msSaveBlob(csvBlob, fileName);
  } else {
    //for modern browsers
    const link = document.createElement('a');
    const url = window.URL.createObjectURL(csvBlob);
    link.href = url;
    link.setAttribute('download', fileName);
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
    setTimeout(() => {
      window.URL.revokeObjectURL(url);
    });
  }
}

// example
downloadAsCSV('YOUR_LONG_CSV_STRING', 'FILE_NAME_HERE');

关于Javascript 将长字符串编码为 csv 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57779116/

相关文章:

javascript - SQL语句中的条件 VS 代码中的条件

python - 尝试使用 os.path 通过文件搜索创建 CSV 文件

java - 在 Mac OS X 中读取 Windows .CSV 文件

notepad++ - 如何在 Notepad++ 中对 SELECTED 文本进行 URL 编码/解码

javascript - 外部文件中的 JS 函数无法识别

JavaScript 适用于 IE,但不适用于 Firefox

php - url 编码的正斜杠破坏了我的 codeigniter 应用程序

javascript - 使用javascript将URL作为参数发送

javascript - 向数据表添加按钮 - Jquery

regex - 从格式错误的CSV创建新的CSV(在字段之间包含LF和CR字符)