gpt4 book ai didi

javascript - 如何在 Angular 中将动态 JSON 对象数组导出为 CSV?

转载 作者:搜寻专家 更新时间:2023-10-30 21:45:41 25 4
gpt4 key购买 nike

我正在尝试将一组 JSON 对象导出为 CSV,而键值对的数量可能会有所不同(这意味着有些列可能比其他列多)。我目前能够使用 Angular2CSV 包导出,但它只支持包含所有列的情况。

下面的代码显示了我当前的实现,其中服务返回要下载的数据。

private exportTable(){
this.service.exportDataForDownload().then(response => {
let csvFileName = "Results";
new Angular2Csv(response, csvFileName, {headers: this.tableheaders});

});
}

最佳答案

基于这个问题 (https://github.com/javiertelioz/angular2-csv/issues/27),您可能会找到更动态解决方案的灵感:

这个问题的解决方案是这样的:

new Angular2Csv(this.data, 'myCsv', { headers: Object.keys(this.data[0]) });

基于此:

创建一个集合以包含唯一的标题:

let headerSet = new Set();

对于响应中的每一行,获取该行的键并将它们添加到集合中(伪代码)

for (r of/in response) {
headerSet.add(Object.keys(r));
}

对于数据部分,你必须重新运行这个过程并检查每一行是否有一个特定的键,如果没有你需要用那个丢失的键输入和清空值或你喜欢的东西(这很棘手由于所有值都需要以正确的顺序插入,因此仅使用 Set 解决方案可能还不够)。

当添加/添加所有可能的标题/数据时:

new Angular2Csv(response, csvFileName, {headers: Array.from(headerSet});

需要编写确切的代码。我没有检查也不知道数据格式是什么。

关于javascript - 如何在 Angular 中将动态 JSON 对象数组导出为 CSV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55505419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com