使用vue xlsx插件实现指定行数导入excel

基于xlsx导入excel数据到页面上,从网上不难找到一种binary的方式导入的方法。这是一位博友给出的解决方案
但是今天遇到一个客户的需求,需要将导入模板做成下图的样子,因为做订单的数据好多相对复杂,所以需要从每个字段上边加一些说明,如下图的样子:
在这里插入图片描述
这样就无法简单的运用代码导入了。我从网上找了半天,没有类似的方法,xlsx 的权威文档也没找到,不知道是不是我搜索的关键词不对。无奈只能自己瞎捉摸,但是本人能力又没那么强,不会直接操作binary类型数据。代码不长,干脆先一个一个把里边的变量都输出来看看先。
于是我找到了这么一行代码

outdata = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);

大概就是取xlsx文件的第一个sheet的数据,转换成json。输出来wb.Sheets[wb.SheetNames[0]]的数据暂时无法展示,因为在家无法连接内网,程序跑不起来。他是一个js的对象,第一个属性是!ref:A1:CE48这样的东西。然后是每个单元格的数据,例如A1:A1的内容这样,但是内容比较复杂,可能是一种特殊的数据格式,无法操作。经过一番尝试,我发现这时候如果我们需要取第12行往后的数据,只需要把!ref属性修改即可,改成!ref:A12:CE48。代码如下:

var xlsxLth = wb.Sheets[wb.SheetNames[0]]["!ref"];
var stopX = xlsxLth.substr(xlsxLth.indexOf(':')+1,wb.Sheets[wb.SheetNames[0]]["!ref"].length);
wb.Sheets[wb.SheetNames[0]]["!ref"] = "A12:"+stopX

这样就能实现从第12行开始导入excel的数据了,如果没有找到官方API的朋友可以试一下,找到了的麻烦能告诉我一声最好,毕竟我找了一下午,十分感激!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值