【发布时间】:2017-07-04 05:38:23
【问题描述】:
我在 Angular 2 应用程序中使用一个函数将 JSON 数据转换并导出为 .CSV。以下是我的功能,在 angular 2 应用程序中运行良好 (网络)。我尝试在使用 Ionic 2 开发的移动应用程序中使用的相同,它在移动应用程序中不起作用。有没有办法做到这一点?
谢谢!
saveAsCSV() {
let sampleJson : any = [{name:'ganesh', age:'24'},{name:'ramesh', age:'24'},{name:'suresh', age:'24'}]
this.saveData = [];
let a = document.createElement("a");
a.setAttribute('style', 'display:none;');
document.body.appendChild(a);
let csvData = ConvertToCSV(sampleJson);
let blob = new Blob([csvData], { type: 'text/csv' });
let url= window.URL.createObjectURL(blob);
a.href = url;
a.download = 'sample.csv';
a.click();
}
ConvertToCSV(objArray) {
let array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
let str = '';
let row = "";
for (let index in objArray[0]) {
//Now convert each value to string and comma-separated
row += index + ',';
}
row = row.slice(0, -1);
//append Label row with line break
str += row + '\r\n';
for (let i = 0; i < array.length; i++) {
let line = '';
for (let index in array[i]) {
if (line != '') line += ',';
line += array[i][index];
}
str += line + '\r\n';
}
return str;
}
【问题讨论】:
-
“下载”属性是浏览器上如何执行它的被告。我建议在 ionic 中下载一个文件,你应该使用这个 cordova 插件:github.com/apache/cordova-plugin-file-transfer#download