【发布时间】:2021-10-08 02:49:33
【问题描述】:
以下是我在 JS 中将数据导出到 CSV 文件的脚本。所有数据都作为一个名为 arrayPulledFromServer 的数组拉入。有了这个,我试图将其中的每个用户数据分成 CSV 中的行。每个用户只有三个值,所以当它达到 3 个限制时它会被切断。从那里我将新用户信息推送到另一个名为 row 的数组中。
var masterCSV: any[] = [];
var row: any[] = [];
arrayPulledFromServer?.map((record) => {
masterCSV.push(
[record.name],
[record.age],
[record.city]
);
row.push(masterCSV);
if (masterCSV.length == 3) {
row.push('\n');
masterCSV = [];
}
});
const rows = [
[
"Full Name",
"Age",
"City"
],
[row],
];
let csvContent =
"data:text/csv;charset=utf-8," + rows.map((e) => e.join(",")).join("\n");
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "records.csv");
document.body.appendChild(link);
link.click();
};
这段代码工作正常,但是当我按原样导出时,第二行向内缩进一个空格: 末尾还有各种空白单元格。
我尝试使用\u2028 代替\n,但没有看到任何结果。当我打印整个数组时,它不显示任何空格,只显示'\ n'。如果您能就清理此导出提供任何建议,我将不胜感激。
【问题讨论】:
标签: javascript typescript csv