当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在CordovaAndroid应用程序中使用javascript创建csv或Excel文件》经验,为你挑选了1个好方法。

我正在尝试使用phoneGap创建Android应用程序.我已经编写了用于在javascript中创建csv文件的代码,它可以在浏览器上正常工作,但它不能在使用cordova创建的移动应用程序中工作.除了文件创建之外的其他东西在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();

Shiva.. 5

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

创建文件对象和编写的代码看起来像这样

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);
 }

您可以参考本教程以更好地理解文件编写过程.



1> Shiva..:

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

创建文件对象和编写的代码看起来像这样

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);
 }

您可以参考本教程以更好地理解文件编写过程.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有