【发布时间】:2017-09-02 01:11:41
【问题描述】:
有没有办法生成一个csv文件并使用meteor在客户端下载?我希望用户能够单击一个按钮,然后在不离开当前页面的情况下下载一个文件。
Template.analytics.events({
'click .csv-export' (event, template) {
const json2csv = require('json2csv');
let fields = ['timestamp', 'user', 'category', 'action'];
let data = Analytics.find({}).fetch();
try {
let result = json2csv({data: data, fields: fields});
var filename = 'test.csv';
var headers = {
'Content-Type': 'text/csv',
'Content-Disposition': "attachment; filename=" + filename
};
this.response.writeHead(200, headers);
this.response.end(result);
} catch (err) {
console.error(err);
}
}
});
【问题讨论】:
-
是的,有可能,您是否已经有一些代码要显示?否则,这是非常普遍且需要解决方案的。您是否包含任何用于 csv 导出的 npm 包?
-
嘿@Jankapunkt 我添加了一些不起作用的代码,但你可以知道我想要完成什么
-
啊,我明白了!这对你有帮助吗?看到这个小提琴:jsfiddle.net/UselessCode/qm5AG 编辑:用小提琴中的一些代码替换 this.response 的部分。应该工作。
-
请将您的工作代码作为答案发布,以便其他人也可以从中受益。 ;-)
-
@Jankapunkt 完成
标签: meteor meteor-blaze