Вот рабочее решение
преобразование массива Javascript объекта в CSV
function convertToCSV(objArray) {
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';
for (var i = 0; i < array.length; i++) {
var line = '';
for (var index in array[i]) {
if (line != '') line += ','
line += array[i][index];
}
str += line + '\r\n';
}
return str;
}
Экспорт в CSV Функция
function exportCSVFile(headers, items, fileTitle) {
if (headers) {
items.unshift(headers);
}
// Convert Object to JSON
var jsonObject = JSON.stringify(items);
var csv = convertToCSV(jsonObject);
var exportedFilenmae = fileTitle + '.csv' || 'wal_export.csv';
var blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
if (navigator.msSaveBlob) { // IE 10+
navigator.msSaveBlob(blob, exportedFilenmae);
} else {
var link = document.createElement("a");
if (link.download !== undefined) { // feature detection
// Browsers that support HTML5 download attribute
var url = URL.createObjectURL(blob);
link.setAttribute("href", url);
link.setAttribute("download", exportedFilenmae);
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
}
}
Функция, вызываемая в строке пользовательского интерфейса
$scope.funcExport = function (row) {
var id = row.entity._id;//this will be used for dynamic data later
var exportHeader = ['Licence', 'Condition'];
var headers = {
licence: 'Licence'.replace(/,/g, ''), // remove commas to avoid errors
condition: "Condition"
};
var exportarray = [
{ "licence": "229973", "condition": "Usage" },
{ "licence": "24141", "condition": "Level" }
];
var fileTitle = 'WAL_CSV'; // or 'my-unique-title'
exportCSVFile(headers, exportarray, fileTitle);
}
Наконец, определение столбца пользовательского интерфейса
{
field: "actions", "name": "Action",
cellTemplate: '<a ng-click="grid.appScope.funcExport(row)"> Download {{row.entity.LicenceType}} CSV </a>',
width: "170"
}
Решение основано на Дэнни Пуле Экспорт JSON в файл CSV с использованием Javascript (в браузере).