如何在 Cordova android 应用程序中使用 javascript 创建 csv 或 Excel 文件

How to create csv or Excel file using javascript in Cordova android app

我正在尝试使用 phoneGap 创建 android 应用程序。我已经编写了用于在 javascript 中创建 csv 文件的代码,它在浏览器上工作正常,但它在使用 cordova.Everything 创建的移动应用程序中不起作用,除了文件创建在 cordova app.Pl 中工作正常。指南

我在清单中使用了以下权限,

创建 csv 文件的代码:- var link = document.getElementById("dataLink");

        var csv = "";
            //we should have the same amount of name/cookie fields

                var name = "testdata1";
                var cookies = "testdata2",
                csv = csv + ""+ name + "," + cookies + "\n";    

                    console.log("csv-"+csv);

                    $("#dataLink").attr("href", 'data:Application/octet-stream,' + encodeURIComponent(csv))[0].click();

您将需要使用 Crodova 的 File Plugin 将文件写入文件系统,因为不同的操作系统只有某些目录可供应用程序访问 read/write。

创建文件对象和写入的代码如下所示

window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function(dir) {
   console.log("got main dir", dir);
   dir.getFile("myfile.csv", {
     create: true
   }, function(file) {
     console.log("got the file", file);
     logOb = file;
     var csv = "";
     //we should have the same amount of name/cookie fields
     var name = "testdata1";
     var cookies = "testdata2",
       csv = csv + "" + name + "," + cookies + "\n";
     console.log("csv-" + csv);
     writeLog(csv);
   });
 });

 function writeLog(str) {
   if (!logOb) return;
   logOb.createWriter(function(fileWriter) {
     fileWriter.seek(fileWriter.length);

     var blob = new Blob([str], {
       type: 'text/plain'
     });
     fileWriter.write(blob);
     console.log("ok, in theory i worked");
   }, fail);
 }

您可以参考this tutorial来更好地理解文件写入的过程。