1

CSVファイルの生成に役立つコードをいくつか見つけました。しかし、.csvの拡張子でそれを保存することはできません

次のコードを使用してcsvファイルを生成していますが、拡張子が.csvのファイルを保存する必要があります

var ExportToCSV= function (gridData, fileName, humanize, ignore){

           var csv = '',
           data = [],
        ignore = [];

                                                                         if (!ignore) {
        ignore = [];
    }

    //ignore added datasource properties       
    var commonIgnore = ["_events", "idField", "_defaultId", "constructor", "init", "get",
        "_set", "wrap", "bind", "one", "first", "trigger",
        "unbind", "uid", "dirty", "parent"];
    ignore = $.merge($.merge([], ignore), commonIgnore);

     var data= gridData._data;



    //add the header row
    if (data.length > 0) {
        for (var col in data[0]) {
            //do not include inherited properties
            if (!data[0].hasOwnProperty(col) || ($.inArray(col, ignore) > -1)) {
                continue;
            }

            if (humanize) {
                col = col.split('_').join(' ').replace(/([A-Z])/g, ' $1');
            }

            col = col.replace(/"/g, '""');
            csv += '"' + col + '"';
            if (col != data[0].length - 1) {
                csv += ",";
            }
        }
        csv += "\n";
    }

    //add each row of data
    for (var row in data) {
        for (var col in data[row]) {
            //do not include inherited properties
            if (!data[row].hasOwnProperty(col) || ($.inArray(col, ignore) > -1)) {
                continue;
            }

            var value = data[row][col];
            if (value === null) {
                value = "";
            } else if (value instanceof Date) {
                value = kendo.toString(kendo.parseDate(value),"dd/MM/yyyy");
            } else {
                value = value.toString();
            }

            value = value.replace(/"/g, '""');
            csv += '"' + value + '"';
            if (col != data[row].length - 1) {
                csv += ",";
            }
        }
        csv += "\n";
    }

    //TODO replace with downloadify so we can get proper file naming
    window.open("data:application/csv;charset=utf-8," + escape(csv));

};

この問題を解決するためにphp、asp.net、javaなどのサーバー側コードを使用する方法はたくさんあります。しかし、クライアント側のスクリプトを使用する、つまりJavascript / JQueryを使用するだけで、誰かが私が同じことを達成するのを手伝ってくれるでしょうか。

どうもありがとうございました。

4

2 に答える 2

1

Chrome に関するこの優れたブログ投稿に従ってください (FF はまだテストしていません): http://hackworthy.blogspot.co.nz/2012/05/savedownload-data-generated-in.html

私はまだ IE9 で動作するメソッドを探しています (ActiveX と execCommand() は動作しません)。最後の手段: Flash、大量のプラグイン (Downloadify など...)

于 2012-09-11T23:57:50.660 に答える
0

ブラウザはサンドボックス化されているため、.csv を保存することはできませんが、API を使用してサーバーや Dropbox などに送信し、ファイルをダウンロードするためのリンクをユーザーに提供することはできます。

于 2012-08-03T11:32:43.790 に答える