I know this question is a few months old but I was searching for the same thing and figured I'd document how I solved the problem.
Side note: I saw that there is an ng-grid-wysiwyg-export.js plugin in the plugins folder but I found no examples or documentation on it's use and didn't take the time to figure it out because...
I did find that there is a playground.html file in the ng-grid plugins folder that has an example for the CSV plugin. It demonstrated how to use the columnOverrides feature that you can pass into the plugin constructor via the opts parameter:
$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
};
So for the example in the question above, you can define override functions for each column that you want to apply filters on, like so:
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); }
}
};
While it's a little extra work to have to define these instead of just invoking the already-defined cellFilter from the columnDefs, this approach DOES give you the flexibility to have your exported data be slightly different than what is displayed on the screen... perhaps a more expressive date format, etc.