Нет необходимости устанавливать какие-либо внешние библиотеки или зависимости.Все это можно сделать с помощью Vanilla JavaScript / TypeScript на вашем component.ts.
Первая строка в вашем CSV-файле всегда будет заголовком.
Последующие строки будут представлять каждую строку данных в строке CSV.Следовательно, formattedData
представляет обработку yourData
для отдельных строк, и каждая «строка» представляется массивом.
После чего вы используете Array.join()
для преобразования массива в соответствующую строку.значение, разделенное запятой.
this.yourData = [{"id":13,"context":"http:\/\/tempurl.org","details":[{"name":"test1"},{"name":"test2"}],"username":"testuser1","custName":"cap1"},{"id":14,"context":"http:\/\/tempurl.org","details":[],"username":"testuser2","custName":"cap2"}];
exportData() {
let currentRow = [];
const csvHeader = ['id', 'context', 'username', 'custName', 'name'];
const formattedData = this.yourData.map(row => {
// do the rest here
return currentRow;
});
let csvContent = 'data:text/csv;charset=utf-8,';
formattedData.unshift(csvHeader);
formattedData.forEach(rowArray => {
const row = rowArray.join(',');
csvContent += row + '\r\n';
});
const encodedUri = encodeURI(csvContent);
window.open(encodedUri);
}