gpt4 book ai didi

javascript - 具有分隔列的 JSON 到 CSV

转载 作者:行者123 更新时间:2023-11-29 19:42:13 25 4
gpt4 key购买 nike

在一个 Angular 项目中,我试图实现一个函数来从对象数组生成 CSV 文件。

对象数组填充了一个 ng-Table,所以起初我尝试使用:http://bazalt-cms.com/ng-table/example/15这在 chrome 中效果很好,在 IE 中它根本不起作用,因为它需要使用下载属性...

然后我尝试了这个方法

     var objArray = [
{ name: "Item 1", color: "Green", size: "X-Large" },
{ name: "Item 2", color: "Green", size: "X-Large" },
{ name: "Item 3", color: "Green", size: "X-Large" }];

var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';

for (var i = 0; i < array.length; i++) {
var line = '';
for (var index in array[i]) {
if (line != '') line += ','

line += array[i][index];
}

str += line + '\r\n';
}

但是,现在一行的所有数据都在一个列中。我想要单独列上的数据。

预期输出(在 Excel 中打开后)

enter image description here

有人知道如何做到这一点吗?

最佳答案

这看起来像一个 Excel 问题。

But, now all the data of a row is in one single column. I want need the data on seperate columns... (once opened in Excel)

您正在创建这样的文件: Convert JSON format to CSV format for MS Excel

问题是您的文件没有 csv 扩展名。不要双击文件或让 IE 自动打开它,而是打开 Excel 并选择"file">“打开”。浏览到该文件并单击打开。这将调用文本导入向导,您可以在其中指定逗号作为分隔符。

更新
您可以通过在第一行添加“sep=,”来告诉 Excel 如何处理该文件。在您的代码中,在循环后添加以下行:
str = 'sep=,\r\n' + str;

如果您在记事本中打开该文件,它将如下所示:
sep=,
名称、颜色、尺寸
项目 1,绿色,特大号
项目 2,绿色,特大号
项目 3,绿色,X-Large

但是,当文件在 Excel 中打开时,只会显示标题和数据:
csv opened in Excel

这是一个演示,派生自 Joseph Sturtevant's fiddle 贴在 the related question 的答案中: http://jsfiddle.net/wittwerj/6JySt/

关于javascript - 具有分隔列的 JSON 到 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22382321/

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