Vue导入Excel复杂表头(合并单元格)

前端Vue导入Excel复杂多级表头、导出复杂表头

一般情况下都是有我们的后端来操作这个文件的读写,但总有特殊情况嘛,就比如我公司后台人员配置较少,没时间…,于是我就自己开始鼓捣了,先展示一下成果,上图:

表格导入效果(需要自己处理一下数据格式)

在这里插入图片描述

导出效果:

在这里插入图片描述

复杂表头(合并单元格)导入实现过程

1.首先我们的excel的导入导出都是依赖于js-xlse实现的,在 js-xlsx的基础上又封装了Export2Excel.js来方便导出数据

2.通过这个插件给我们读到的excel格式是这样子的 worksheet:
在这里插入图片描述
在这里插入图片描述

之后通过github给我们提供的api使用文档可发现,官方给我们提供了很丰富的使用函数工具如图(我们主要会用到图中红色的框内的:

sheet_to_json()

已经帮助我们把之前的数据格式拼成对象th与td对应的数据格式了
在这里插入图片描述
在这里插入图片描述
但是,只可以是适用于简单的没有合并单元格的表头进行导入:
下面我们再来试试比较复杂的表头进行导入:
在这里插入图片描述
转化为:
在这里插入图片描述

这样数据就很明显的对应不上了,所以我们的思路就是找到他的源码改一下sheet_to_json方法实现我们的复杂表头导入.

不知道你们的编辑器用的是什么,我用的webstrom查看这个sheet_to_json()
源码就会给我跳到ts源码里,看不到真正的源码,后来我还是打的debugger在Source里找到的源代码,各位大佬都可以自己尝试着改一下源码试试

经过了长达三天的努力,效果最终达到了,效果就是本文章最顶部的图.

在这里卖个关子哈,作者也是刚毕业一年的小菜鸡,相较本平台的大佬啥也不是,如果你想要这种导入复杂表格的效果,可以加我扣扣免费获取,让我也知道我的代码对你们有所帮助,嘿嘿…导出复杂表头的就自己百度把,导出的有很多人写。
注:只有和我的表格表头合并格式类似的可以使用
QQ:1774420802 加备注csdn

拿到文件之后的使用:

import excel form './xxxxxxx.js'
//原:
 let XLSX = require('xlsx')
 let outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]])
//改为:
 let outdata = excel.sheet_to_json(wb.Sheets[wb.SheetNames[0]])
  • 15
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值