问题:
下载的CSV文件为空(unparse()方法将数组/JSON转换为CSV)。
详细信息:
当将CSV文件解析为JavaScript数组时,帕帕尔斯很好地工作。但是,当我将数组数据或JSON数据提供给unparse()方法时,它不起作用。
角JS方法:
$scope.downloadCSV = function(){
var csv = Papa.unparse($scope.final_array);
console.log($scope.final_array);
console.log(csv);
var csvData = new Blob([csv], {type: 'text/csv;charset=utf-8;'});
var csvURL = null;
if (navigator.msSaveBlob) {
csvURL = navigator.msSaveBlob(csvData, 'download.csv');
} else {
csvURL = window.URL.createObjectURL(csvData);
}
var tempLink = document.createElement('a');
tempLink.href = csvURL;
tempLink.setAttribute('download', 'download.csv');
tempLink.click();
}$scope.final_array包含的数据如下:

在上面的代码中,console.log(csv);在控制台上显示为空白。
简而言之:var csv = Papa.unparse($scope.final_array);不起作用。
更新
posted数组帮助我生成下表,按钮"Save “无法工作,发布的代码用于此操作按钮。

发布于 2018-09-11 20:42:20
您正在尝试解解析一个数组,它只是没有列名的普通数据。
若要使用列名,您可能需要使用对象数组版本。将final_array重写为:
$scope.final_array = [
{ question1: "A", question2: "A", question3: "mike" },
{ question1: "A B", question2: "B", question3: "dan" },
];或者,可以将列名和单个对象中的数据分隔开来,如下所示:
$scope.final_object = {
fields: [ "question1", "question2", "question3" ],
data: [
[ "A", "A", "mike" ],
[ "A B", "B", "dan", ],
],
};如果您需要转换$scope.final_array,也许下面的片段将对您有所帮助:
function convertFinal(arrOfArr) {
return arrOfArr.map(function(arr) {
var obj = {};
for(var key in arr) {
if(arr.hasOwnProperty(key)) {
obj[key] = arr[key];
}
}
return obj;
});
}
var csv = Papa.unparse(convertFinal($scope.final_array));https://stackoverflow.com/questions/52240221
复制相似问题