【发布时间】:2014-04-18 09:44:05
【问题描述】:
在一个角度项目中,我试图实现一个函数来从一组对象生成一个 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 中打开后)
有人知道怎么做吗?
【问题讨论】:
-
转成JSON再转回来的目的是什么?
-
嗯,代码工作得很好,据我所知。请注意,您(严格来说)不能依赖对象中属性的顺序。根据数组中每个对象的“生命历史”,您不一定会以相同的顺序获取属性(换句话说,“名称”、“颜色”、“大小”可能会被打乱)。
-
它会创建一个 csv,这不是问题所在。问题是输出 csv 的格式。我需要将名称放在一列中,将颜色放在第二列中,将大小放在第三列中。 atm他们都在同一列
-
不是在我运行它时;它们之间有逗号。也许我不知道您所说的“列”是什么意思。那段代码之后的字符串你在做什么?
-
您应该发布您的预期输出。这个JSFiddle 的输出看起来是正确的 csv
标签: javascript json angularjs internet-explorer export-to-csv