excel download in angular
download(){
if(this.fromdate2==undefined){
this.filename="AllIssues";
}else{
this.filename=this.fromdate2;
}
this.downloadFile(this.jsonData, this.filename);
}
downloadFile(data, filename='data') {
let date;
if(this.fromdate2==undefined){
date='';
}else{
date='Month: '+this.fromdate2;
}
let csvData = this.ConvertToCSV(data, ['ArmyNo','Name', 'Rank','Unit' ,'Issue','ReportedOn', 'ResolvedOn']);
console.log(csvData);
let blob;
if(date==''){
blob = new Blob(['\ufeff' + csvData], { type: 'text/csv;charset=utf-8;' });
}else{
blob = new Blob(['\ufeff' + date + '\r\n' + csvData], { type: 'text/csv;charset=utf-8;' });
}
let dwldLink = document.createElement("a");
let url = URL.createObjectURL(blob);
let isSafariBrowser = navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1;
if(isSafariBrowser) { //if Safari open in new window to save file with random filename.
dwldLink.setAttribute("target", "_blank");
}
dwldLink.setAttribute("href", url);
dwldLink.setAttribute("download", filename + ".csv");
dwldLink.style.visibility = "hidden";
document.body.appendChild(dwldLink);
dwldLink.click();
document.body.removeChild(dwldLink);
}
ConvertToCSV(objArray, headerList) {
let array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
let str = '';
let row = 'S.No,';
for (let index in headerList) {
row += headerList[index] + ',';
}
row = row.slice(0, -1);
str += row + '\r\n';
for (let i = 0; i < array.length; i++) {
let line = (i+1)+'';
for (let index in headerList) {
let head = headerList[index];
line += ',' + array[i][head];
}
str += line + '\r\n';
}
console.log(str);
return str;
}
Comments
Post a Comment