如何在离子移动应用程序中创建表单/表的csv文件?

时间:2016-05-30 08:37:42

标签: csv ionic-framework

我无法找到如何创建用户插入数据的表的csvxls文件。我想要一个按钮,在离子应用程序中将数据保存为csv/xls文件格式。

我有一个带有保存按钮的表单,用于在SQLite中保存表单的数据。我也可以在表格中检索数据。现在,我想将此表数据保存在我的离子应用程序中。我使用ng-csvng-sanitizer来处理这个问题,这在浏览器中运行得很好,但按钮不会在应用程序中触发。

我该如何处理?

1 个答案:

答案 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文件,你可以轻松地以任何格式导出文件。