我有一个 JS 对象(称为 df),其中包含许多数组,如下所示:
0: Array(2)
0: "1405"
1: "text string 1 #something"
1: Array(2)
0: "1366"
1: "text string 2 #hashtag"
603: Array(2)
0: "92"
1: "text string 603"
我想将其导出到 csv 文件中,如下所示:
观点 | 标题 |
---|---|
1405 | 文本字符串 1 #something |
1366 | 文本字符串 2 #hashtag |
92 | 文本字符串603 |
我可以用这个导出到 csv:
const blob = new Blob([df], { type: "text/csv; charset=utf-8;" });
const url = URL.createObjectURL(blob);
const link = document.createElement("a");
link.setAttribute("href", url);
link.setAttribute("download", "export.csv");
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
但是输出很乱:
A | B | C |
---|---|---|
1405 | 文本字符串1 | |
#某事 | ||
1366 | 文本字符串 2 #hasthag |
如何在 JS 中清理它?
您可以尝试将数组转换为CSV格式
const arrayToCsv = (data) => data.map((row) => row.join(",")).join("\n");
导出时使用此功能
const blob = new Blob([arrayToCsv(df)], {
type: "text/csv; charset=utf-8;",
});
const url = URL.createObjectURL(blob);
const link = document.createElement("a");
link.setAttribute("href", url);
link.setAttribute("download", "export.csv");
document.body.appendChild(link);
link.click();
document.body.removeChild(link);