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

问题描述:

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

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

+2

不,JS无法访问filsystem,但取决于你想创建的文件类型和你想要用它做什么,你可能能够生成一个dataURI的一个文件.. –

+0

当然:Ajax不是为了这个^^它只是为了好奇。 –

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

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

这里有一个fiddle ..当你运行它,它会问你要打开文件在Excel或任何你使用..