我知道這個問題是幾個月大,但我正在尋找同樣的事情,並認爲我會記錄我如何解決問題。
附註:我看到有一個ng-grid-wysiwyg-export.js
插件的插件文件夾,但我發現它的使用沒有例子或文件,並沒有花時間來弄明白,因爲......
我did發現在ng-grid插件文件夾中有一個playground.html
文件,該文件夾中有一個CSV插件示例。它演示瞭如何使用columnOverrides功能,您可以通過opts
參數傳遞到插件的構造函數:
$scope.myData = [
{hasThing: false, obj: {a:5, b:6}, name: "Moroni", age: 50, ln: 'sdf'},
{hasThing: true, obj: {a:6, b:7}, ln: "Tiasdfsdfnd", age: 43}
];
var csvOpts = { columnOverrides: { obj: function(o) { return o.a + '|' + o.b; } } };
$scope.gridOptionsBig = {
data: 'myData',
plugins: [new ngGridCsvExportPlugin(csvOpts)],
showFooter: true
};
所以對於上面的問題的例子,你可以定義你想要每一列控功能對應用濾鏡,就像這樣:
var csvOpts = {
columnOverrides: {
service_date: function(d) { return $filter('date')(d); },
service_code: function(c) { return $filter('myCustomCamelCaseFilter')(c); },
price: function(p) { return $filter('currency')(p); }
}
};
雖然這是一些額外的工作,必須定義這些,而不是從columnDefs只是調用已定義cellFilter,這種做法確實讓你的靈活性,讓您的出口數據稍有不同一個什麼顯示在屏幕上......也許是一個更富有表現力的日期格式,等等。
我結束了使用所見即所得插件作爲一個例子,這樣我可以破解CSV插件(1)爲標題使用顯示名稱,(2)僅導出呈現的行(以防過濾器處於活動狀態)和(3)僅導出可見的列。 –
請注意......我實際上並沒有使用wysiwyg插件......我只是看着其中的代碼來弄清楚如何進行這些自定義。對於那些感興趣的人,我創建了http://plnkr.co/edit/NI7s0X?p=preview ...順便說一句,不知道爲什麼過濾不起作用,但我對CustomNgGridCsvExportPlugin所做的更改已儘可能清楚地記錄下來。 –
不幸的是,這個解決方案在ui-grid中不起作用。 – Mordred