我在angular 2应用程序中使用函数将JSON数据转换并导出到.CSV。以下是我的功能,并在角度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;
}
答案 0 :(得分:2)
使用“cordova-plugin-file”在Ionic 2中导出csv。
https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/
如果您看到以下错误 -
代码:1条消息:“NOT_FOUND_ERR”
在config.xml中添加以下行之一来解决它。
<preference name="AndroidPersistentFileLocation" value="Internal" />
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
如插件文档中所述,您可以使用以下两个选项之一:
选择是否在内部存储文件 文件存储位置,或使用先前的逻辑,具有首选项 在应用程序的config.xml文件中。如果没有这一行,File插件将使用Internal作为 默认。如果存在首选项标签,并且不是其中之一 值,应用程序将无法启动。
如果您的应用程序之前已经发送给用户,请使用 这个插件的旧版本(3.0.0之前版本),并且已经存储了文件 持久性文件系统,那么你应该将首选项设置为 兼容性,如果您的config.xml没有指定的位置 持久文件系统。将位置切换为“内部”意味着 升级其应用程序的现有用户可能无法使用 访问以前存储的文件,具体取决于他们的设备。
如果您的应用程序是新的,或者之前从未存储过文件 持久性文件系统,然后通常是内部设置 推荐使用。