Excel导入导出

导入

vue-element-admin上的模板,地址:https://github.com/PanJiaChen/vue-element-admin/blob/master/src/components/UploadExcel/index.vue,直接复制然后根据需求更改样式,

下载xlsx插件,因为模板组件依赖这个插件,

组件接收一个success函数,返回值的第一个是要导入的表格的表头,第二个是表格每一行的内容(一个个对象组成的数组),所以在引用组件的时候要定义一个函数传递进去,并解构接收两个值,然后按照需求处理数据的格式

导出

vue-element-admin提供了导出的功能模块,直接把文件复制项目目录下就行,然后下载文件依赖的插件

npm install  file-saver -S
npm install script-loader -S -D

可以在需要导出Excel表格的页面用懒加载的方式引入,返回的是一个Promise对象,成功的回调的值是文件的实例对象,包括了文件默认导入的所有方法,一般使用export_json_to_excel方法,然后把数据处理成要求的数据格式传入就可以

import('@/vendor/Export2Excel').then(excel => { // excel就是文件的实例对象
  excel.export_json_to_excel({
    header: , //表头 必填
    data, //具体数据 必填
    filename: 'excel-list', // 导出的文件名 非必填
    autoWidth: true, // 是否要自适应宽度 非必填
    bookType: 'xlsx' // 导出的格式 非必填
  })
})
参数说明类型可选值默认值
header导出数据的表头Array/[]
data导出的具体数据Array/[[]]
filename导出文件名String/excel-list
autoWidth单元格是否要自适应宽度Booleantrue / falsetrue
bookType导出文件类型Stringxlsx, csv, txt, morexlsx

 

复杂表头的导出

vue-element-admin 提供的导出方法中有 multiHeadermerges 的参数

参数说明类型可选值默认值
multiHeader复杂表头的部分Array/[[]]
merges需要合并的部分Array/[]

multiHeader里面是一个二维数组,里面的一个元素是一行表头,假设你想得到一个如图的结构

 

mutiHeader应该这样定义

const multiHeader = [['姓名', '主要信息', '', '', '', '', '部门']]

multiHeader中的一行表头中的字段的个数需要和真正的列数相等,假设想要跨列,多余的空间需要定义成空串

它主要对应的是标准的表头

const header = ['姓名', '手机号', '入职日期', '聘用形式', '转正日期', '工号', '部门']

如果,我们要实现其合并的效果, 需要设定merges选项

 const merges = ['A1:A2', 'B1:F1', 'G1:G2']

merges的顺序是没关系的,只要配置这两个属性,就可以导出复杂表头的excel了

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值