gpt4 book ai didi

angularjs - 将数据内容保存到 csv - AngularJS

转载 作者:行者123 更新时间:2023-12-02 01:02:21 25 4
gpt4 key购买 nike

您好,我正在尝试将来 self 的网络服务器的数据内容保存到 csv 文件中。

我正在尝试这段来自 stackoverflow 中各种问题的代码。

.success(function(data, status, headers, config) {
console.log(data);
if (data.success) {
console.log(data);
var saving = document.createElement('a');

saving.href = 'data:attachment/csv,' + encodeURIComponent(data);
saving.download = 'Summary.csv';
saving.click();
}
})
.error(function(data, status, headers, config) {
console.log('error in downloading!');

});

但是数据的内容并没有保存到我的 summary.csv 中并给了我这个[对象对象]。有人可以帮我解决这个问题吗?

最佳答案

第一个问题是 encodeURIComponent() 需要一个字符串,而你给它一个对象,所以它调用了 .toString(),这就是为什么你得到 [object Object]

相反,您需要自己将数据数组转换为 CSV 字符串。如果您使用 D3.js您可以使用 d3.csv.format(rows),这非常好。或者你可以找到另一个 JS CSV 库。或者您可以使用我刚刚为您编写的以下非常简单的实现:

function csv(arr) {
var ret = [];
ret.push('"' + Object.keys(arr[0]).join('","') + '"');
for (var i = 0, len = arr.length; i < len; i++) {
var line = [];
for (var key in arr[i]) {
if (arr[i].hasOwnProperty(key)) {
line.push('"' + arr[i][key] + '"');
}
}
ret.push(line.join(','));
}
return ret.join('\n');
}

NB: This function assumes you pass it a valid array with at least one element, and all the elements are objects with exactly the same keys. If none of these assumptions are true for you, either extend my function or use a more robust third party library.

因此,将所有这些放在一起,您的最终代码将是:

.success(function(data, status, headers, config) {
console.log(data);
if (data.success) {
console.log(data);
var saving = document.createElement('a');

saving.href = 'data:attachment/csv,' + encodeURIComponent(csv(data.results));
saving.download = 'Summary.csv';
saving.click();
}
})
.error(function(data, status, headers, config) {
console.log('error in downloading!');
});

请注意,我需要访问 data.results 以获得实际的结果数组。我假设您将使用我的 csv() 函数或其他类似函数将数组转换为 CSV 字符串。

关于angularjs - 将数据内容保存到 csv - AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27163872/

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