Does anyone please know how can we support new lines (/n) for a csv download javascript function?
This is my function
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);
The csv file after download it is showing as:
The expected /wished result should be like this