20

.js ファイルにカンマ区切りの変数があります。次に例を示します。

var out='';
out+="1,val1,val2,val3,val4\n";
out+="2,val1,val2,val3,val4\n";
out+="3,val1,val2,val3,val4\n";

を使用して、この値をブラウザに表示していdocument.write(out);ます。変数をファイルとしてダウンロードできる
ようにしたいと思います。out.csv

変数に格納されたデータから、csv ファイルとそれに関連付けられたダウンロード リンクを JavaScript で作成する方法はありますか?

jsフィドル

4

2 に答える 2

48

ブラウザのサポートに依存しますが、新しいブラウザではかなりうまくいっています: http://jsfiddle.net/3fMeL/2/

var CSV = [
    '"1","val1","val2","val3","val4"',
    '"2","val1","val2","val3","val4"',
    '"3","val1","val2","val3","val4"'
  ].join('\n');

window.URL = window.webkitURL || window.URL;

var contentType = 'text/csv';

var csvFile = new Blob([CSV], {type: contentType});

var a = document.createElement('a');
a.download = 'my.csv';
a.href = window.URL.createObjectURL(csvFile);
a.textContent = 'Download CSV';

a.dataset.downloadurl = [contentType, a.download, a.href].join(':');

document.body.appendChild(a);

したがって、最初の項目は Blob オブジェクトです。これにより、ダウンロード可能なオブジェクトが作成されます。https://developer.mozilla.org/en-US/docs/Web/API/Blob ( http://caniuse.com/#search=blob )

次の部分はリンクのダウンロード属性で、ブラウザ ウィンドウで開くのではなく、CSV ファイルをダウンロードするようブラウザに通知します。( http://caniuse.com/#feat=download )

于 2013-06-14T08:16:03.763 に答える
-1

サーバー側の相互作用なしでクライアント側に出力ファイル用の jquery プラグインがあります。

https://github.com/dcneiner/Downloadify

于 2013-06-14T07:51:04.530 に答える