【发布时间】:2015-10-08 23:55:27
【问题描述】:
谁能告诉我点击按钮时如何将 Backgrid.js 表格数据导出为 csv。 我已经使用 backgrid.js 显示了一个表格。现在我想将数据导出为 csv 文件。
【问题讨论】:
标签: javascript backgrid
谁能告诉我点击按钮时如何将 Backgrid.js 表格数据导出为 csv。 我已经使用 backgrid.js 显示了一个表格。现在我想将数据导出为 csv 文件。
【问题讨论】:
标签: javascript backgrid
你可以用 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();
【讨论】: