csv download -如何在JavaScript中支持字符串中的新行(/n)

oo7oh9g9  于 2023-07-31  发布在  Java
关注(0)|答案(1)|浏览(73)

有没有人知道我们如何支持csv下载JavaScript函数的新行(/n)?
这是我的职责

export function exportToCsv(filename, rows) {
  var processRow = function (row) {
    var finalVal = "";
    for (var j = 0; j < row.length; j++) {
      var innerValue = row[j] === null ? "" : row[j].toString();

      var result = innerValue.replace(/"/g, '""');
      if (result.search(/("|,|\n)/g) >= 0) result = '"' + result + '"';
      if (j > 0) finalVal += ";";
      finalVal += result;
    }
    return finalVal + "\n";
  };

  var csvFile = "";
  for (var i = 0; i < rows.length; i++) {
    csvFile += processRow(rows[i]);
  }

  var blob = new Blob([csvFile], { type: "text/csv;charset=utf-8;" });

  var element = document.createElement("a");
  if (element.download !== undefined) {
    var url = URL.createObjectURL(blob);
    element.setAttribute("href", url);
    element.setAttribute("download", filename);
    element.style.display = "none";
    document.body.appendChild(element);
    element.click();
    document.body.removeChild(element);
  }
}
   const example = [
      ["name", "position"],
      ["Rick", "Morty"],
      ["fullstack \n developer", `Data \nscientist`],
    ];
    exportToCsv("example", example);

字符串
下载后的csv文件显示为:
x1c 0d1x的数据
预期/希望的结果应该是这样


vojdkbi0

vojdkbi01#

我的建议是使用PapaParse。否则,您需要转义换行符,并选择性地引用值:

function json2csv(rows)
{
  return rows.map(row =>
  {
    return (Array.isArray(row) ? row : Object.values(row)).map(column => JSON.stringify(column)).join(',');
  }).join('\r\n');
}

字符串

相关问题