我无法找到如何创建用户插入数据的表的csv
或xls
文件。我想要一个按钮,在离子应用程序中将数据保存为csv/xls
文件格式。
我有一个带有保存按钮的表单,用于在SQLite中保存表单的数据。我也可以在表格中检索数据。现在,我想将此表数据保存在我的离子应用程序中。我使用ng-csv
,ng-sanitizer
来处理这个问题,这在浏览器中运行得很好,但按钮不会在应用程序中触发。
我该如何处理?
答案 0 :(得分:2)
首先, 将数据从json对象转换为CSV。
function ConvertToCSV(objArray) {
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';
}
return str;
}
然后将csv值写为writeFile到externalRootDirectory。
$ionicPlatform.ready(function() {
$scope.exportCSV = function (data){
console.log(data);
var jsonObject = JSON.stringify(data);
console.log(jsonObject);
var finalCSV = ConvertToCSV(jsonObject);
console.log(finalCSV);
//alert('cordova.file.dataDirectory: ' + cordova); //I get [object Object]
// alert('cordova.file.dataDirectory: ' + cordova.file.dataDirectory); // I get file is undefined
$cordovaFile.writeFile(cordova.file.externalRootDirectory, 'data.csv', finalCSV, true).then(function(result){
alert('Success! Export created!');
}, function(err) {
console.log("ERROR");
})
}
});
在模拟器或android设备rootDirectory中,将获取 Console.log(cordova.file.externalRootDirectory)或alert(cordova.file.externalRootDirectory)
转到那些目录,你会得到你的csv文件,你可以轻松地以任何格式导出文件。