首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只需使用Javascript/JQuery将网格数据导出为CSV文件并保存为扩展名为.csv

只需使用Javascript/JQuery将网格数据导出为CSV文件并保存为扩展名为.csv
EN

Stack Overflow用户
提问于 2012-08-03 19:16:00
回答 2查看 2.4K关注 0票数 1

我找到了几个可以帮助我生成CSV文件的代码。但是我不能用.csv的扩展名保存它

我使用以下代码来生成csv文件,但我需要以.csv作为扩展名保存该文件

代码语言:javascript
运行
复制
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来帮助我实现同样的目标呢?

非常感谢你的帮助。

EN

Stack Overflow用户

发布于 2012-08-03 19:32:44

因为浏览器是沙箱的,所以你不能保存.csv -但是你可以将它发送到服务器,或者使用api发送到Dropbox或类似的地方,然后为用户提供一个下载文件的链接。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11794636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档