javascript 将对象导出到 csv 作为表格

问题描述 投票:0回答:1

我有一个 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 中清理它?

javascript csv export-to-csv
1个回答
0
投票

您可以尝试将数组转换为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);
© www.soinside.com 2019 - 2024. All rights reserved.