需求:前端实现将后台返回的数组数据转化为多页excel,并自定义样式
使用组件
1、xlsx
2、xlsx-js-style(官方:https://www.npmjs.com/package/xlsx-js-style)
xlsx这个插件可以把html中的table元素或者json数据转换成表格后进行导出
常用方法 | 参数 | 说明 |
---|---|---|
book_new | - | 创建一个空的book |
table_to_book | table元素(dom) | 将table元素转换成 book |
table_to_sheet | table元素(dom) | 将table元素转换成 sheet |
json_to_sheet | json数据(数组) | 将json数据转换成 sheet |
book_append_sheet | 参数1:book对象,参数2:sheet对象,参数3:sheet名称 | 将sheet添加到book中 |
writeFile | 参数1:book对象,参数2:导出的文件名称 | 导出表格文件 |
本来准备使用 xlsx-style,但引入会报很多错,找到xlsx-js-style组件代替,使用方法相同
一、安装依赖
npm install xlsx --save
npm install file-saver --save
//样式组件
npm install xlsx-js-style
二、代码
//html
<button (click)="handleOk()">下载</button>
//ts
import * as XLSX from 'xlsx/xlsx.mjs';
var FileSaver = require('file-saver');
import * as XLSXStyle from 'xlsx-js-style';
// 下载excel
exportFile(): void {
//生成excel表的数据[{},...{}],每个对象代表一行,key值代表列名
let json1: any = []
//数组
this.DataArr1