是否可以使用JavaScript/AJAX在客户端创建文件?

是否可以使用JavaScript/AJAX在客户端创建文件?,javascript,ajax,Javascript,Ajax,是否可以使用Javascript/AJAX和服务器端响应(例如字符串)在客户端生成文件,然后打开此文件下载窗口?例如,一个简单的.txt 如果可能,是否有任何解决方案可以生成.xlsx文件?这将创建一个CSV,您可以基于对象数组(window.EXPORTDATA)在excel中打开该CSV: var csvContent=[]; 对于(var i=0;ino,JS无法访问filsystem,但是根据您想要创建的文件类型以及您想要对其执行的操作,您可能能够为文件生成一个dataURI。。当然:A

是否可以使用Javascript/AJAX和服务器端响应(例如字符串)在客户端生成文件,然后打开此文件下载窗口?例如,一个简单的
.txt


如果可能,是否有任何解决方案可以生成
.xlsx
文件?

这将创建一个CSV,您可以基于对象数组(window.EXPORTDATA)在excel中打开该CSV:

var csvContent=[];

对于(var i=0;ino,JS无法访问filsystem,但是根据您想要创建的文件类型以及您想要对其执行的操作,您可能能够为文件生成一个dataURI。。当然:Ajax不适用于此^^^^这只是出于好奇。
        var csvContent = [];

        for(var i=0; i<window.EXPORTDATA.length; i++){
          var rowContent = [];
          var row = window.EXPORTDATA[i];
          if(csvContent.length === 0){
            for(var p in row)
              if(row.hasOwnProperty(p))
                rowContent.push('"'+ (""+p).replace('"','').replace(',','') +'"');
            csvContent.push("data:text/csv;charset=utf-8,"+rowContent.join(","));
            rowContent = [];
          }
          for(var p in row){
            if(row.hasOwnProperty(p))
              rowContent.push('"'+ (""+row[p]).replace('"','').replace(',','') +'"');
          }
          csvContent.push(rowContent.join(","));
        }

        var dat = csvContent.join("\n");
        var encodedUri = encodeURI(dat);
        window.open(encodedUri);