前言:
项目中遇到一个将表格数据输出为excel文件的需求,本需求只是简单地将简单表格的数据输出到excel,并没有涉及表格样式的复杂处理。
1、安装依赖环境
npm install file-saver --save
npm install @types/file-saver --save-dev
npm install xlsx --save
2、html 导出按钮
<button type="button" class="btn btn-sm btn-success" (click)="exportTable()">导出</button>
3、TS 文件
import * as FileSaver from \'file-saver\'; import * as XLSX from \'xlsx\'; ...... jsonData: any = [ { "姓名": "张三", "工號": "22", "英文名": "zhangsan", "部门": "技术部", "性别": "男", "手机": "15177641999", "个人邮箱": "610336688@qq.com" }, { "姓名": "李四", "工號": "33", "英文名": "李四", "部门": "人事部", "性别": "女", "手机": "15177641988", "个人邮箱": "978336688@qq.com" }]; exportTable() { const exportItem = this.jsonData; const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(exportItem); const workbook: XLSX.WorkBook = { Sheets: { \'data\': worksheet }, SheetNames: [\'data\'] }; const excelBuffer: any = XLSX.write(workbook, { bookType: \'xlsx\', type: \'array\' }); this.saveAsExcelFile(excelBuffer, \'report\'); } private saveAsExcelFile(buffer: any, fileName: string) { const data: Blob = new Blob([buffer], { type: \'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\' }); FileSaver.saveAs(data, fileName + \'.xlsx\'); } .......
4、输出结果