我想通過按鈕(無登錄系統)將我的集合導出到CSV或XLSX文件。使用Meteor/JavaScript將MongoDB集合導出爲CSV或XLSX
有沒有一個簡單的方法來做到這一點與Meteor/JavaScript?
我想通過按鈕(無登錄系統)將我的集合導出到CSV或XLSX文件。使用Meteor/JavaScript將MongoDB集合導出爲CSV或XLSX
有沒有一個簡單的方法來做到這一點與Meteor/JavaScript?
您可以使用類似https://github.com/eligrey/FileSaver.js的東西在瀏覽器端創建Blob,然後將其作爲下載提供。
客戶端JS
var yourCSVData = "Col1Row1,Col2Row1\nCol1Row2,Col2Row2";
var blob = new Blob([yourCSVData],
{type: "text/csv;charset=utf-8"});
saveAs(blob, "yourfile.csv");
建立你的CSV爲yourCSVData
,那麼你應該能夠有下載很容易的文件。
要建立你的CSV你將不得不使用一些自定義JavaScript。與mongodb的事情是,每個文檔可以有不同的結構,這是非常糟糕的行/列類型的文件。
您可以使用類似上面&發表的意見Yvegeniy(http://jsfiddle.net/sturtevant/vUnF9/)給出的撥弄它可能會幫助
var data = MyCollection.find().fetch();
var yourCSVData = JSON2CSV(data);
優秀的答案! –
如果我需要訂閱完整的集合而不僅僅是它的一部分,就像我在頁面上進行下載一樣。小訂閱的原因是收集的大小會使頁面變慢。 – mjwrazor
模板,使一個完美的出口系統
{{#each documents}}
"{{field1}}","{{field2}}"<br/>
{{/each}}
的XLSX格式雖然更醜陋,但它適用於同樣的待遇。
呈現一個HTML頁面是真的一回事。正在生成pdf。或者生成SQL。
考慮最新的流星1.5和最新的流星套餐截至今日,下面是你需要的,以轉化蒙戈DB收集到CSV(也可讀的MS Office就像一個魅力。)
遵循的步驟你需要有以下的任何步驟之前安裝的軟件包,
pfafman:filesaver
harrison:papa-parse
考慮一個簡單的火焰模板(即MyTemplate.html)以低於下載鏈接,
<template name="MyTemplate">
<body>
<a href="#" role="button" class="download">Download</a>
</body>
</template>
同樣可以讓事件處理程序(即MyTemplate.js)來處理 「下載」 鏈接點擊事件,
Template.MyTemplate.events({
'click .download': function (event, template) {
var data = MyCollection.find({}).fetch();
var csv = Papa.unparse(data);
var blob = new Blob([csv], {type: "text/csv;charset=utf-8"});
saveAs(blob, "MyCollection.csv");
}
});
注意 - 當您單擊下載鏈接時,將不會有任何彈出窗口或對話框讓您繼續下載,而是會自動爲您自動下載它。
你應該更具體。這取決於你收藏的結構。一開始你可以調查:http://jsfiddle.net/sturtevant/vUnF9/ –
我會要求重新考慮最新的答案,並讓我知道你對此的看法。 –