我正在使用Angular v4,我想如何从组件中的对象开始构建Excel电子表格.我需要点击一个按钮下载Excel文件,我必须做这个客户端.我有一个由数组组成的json文件,我需要在excel文件上传输它,可能是风格可定制的.可能吗?如果有,怎么样?
编辑:
请不要使用js库,需要使用Typescript和Angular来完成
解决方法
yourdata = jsonData
ConvertToCSV(objArray) { var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray; var str = ''; var row = ""; for (var index in objArray[0]) { //Now convert each value to string and comma-separated row += index + ','; } row = row.slice(0,-1); //append Label row with line break str += row + '\r\n'; 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; }
在你的HTML中:
<button (click)="download()">export to excel</button>
在组件中:
download(){ var csvData = this.ConvertToCSV(yourdata); var a = document.createElement("a"); a.setAttribute('style','display:none;'); document.body.appendChild(a); var blob = new Blob([csvData],{ type: 'text/csv' }); var url= window.URL.createObjectURL(blob); a.href = url; a.download = 'User_Results.csv';/* your file name*/ a.click(); return 'success'; }
希望你能帮助你