【问题标题】:export backgrid.js's grid data as csv将 backgrid.js 的网格数据导出为 csv
【发布时间】:2015-10-08 23:55:27
【问题描述】:

谁能告诉我点击按钮时如何将 Backgrid.js 表格数据导出为 csv。 我已经使用 backgrid.js 显示了一个表格。现在我想将数据导出为 csv 文件。

【问题讨论】:

    标签: javascript backgrid


    【解决方案1】:

    你可以用 underscore.js 尝试这样的事情:

    // columnsParam -> columns parameter you passed when created backgrid
    // collection -> collection you passed when created backgrid
    
    var columns = _.indexBy(columnsParam, 'name'),
        labels = _.pluck(columnsParam, 'label'),
        keys = _.pluck(columnsParam, 'name');
    
    var csv = labels.join(',') + '\n';
    
    csv += collection.map(function(item) {
    
        return _.map(keys, function(key) {
            var cell = columns [key].cell,
                // suppose you want to preserve custom formatters
                formatter = cell.prototype && cell.prototype.formatter;
    
            return formatter && formatter.fromRaw ?
                formatter.fromRaw(item.get(key), item) : item.get(key);
        }).join(',');
    
    }).join('\n');
    

    它并不完美(不处理通常的格式化程序),但展示了这个想法。

    更新

    要将 csv 作为文件下载,您可以将处理程序绑定到您的按钮:

    var encodedUri = encodeURI('data:text/csv;charset=utf-8,' + csv),
    var link = document.createElement('a');
    link.setAttribute('href', encodedUri);
    link.setAttribute('download', 'data.csv');
    
    link.click();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 2020-03-03
      • 2020-09-28
      • 1970-01-01
      相关资源
      最近更新 更多