2016-05-17 7 views
-1

Javascript/AJAXとサーバー側の応答(たとえば文字列)を使用してクライアント側でファイルを生成し、このファイルのダウンロードウィンドウを開くことは可能ですか?単純な.txtなどです。JavaScript/AJAXを使用してクライアント側でファイルを作成することはできますか?

可能であれば、.xlsxファイルを生成するソリューションはありますか?

+2

いいえ、JSはファイルシステムにアクセスできませんが、作成するファイルタイプとその操作方法に応じて、ファイルシステムにアクセスすることはできません。ファイル.. –

+0

確かに:Ajaxはこのためではありません^^それは単に好奇心のためでした。 –

答えて

2

これは、あなたがオブジェクト(window.EXPORTDATA)の配列に基づいて、Excelで開くことができるCSVを作成します。

 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などで使用しています。

関連する問題