技术标签: json vue.js javascript
安装 js-xlsx npm i js-xlsx 完成后引入
import * as XLSX from 'xlsx';
也可以全局引入,不过我这里不需要
上代码
HTML部分
<template>
<div style="padding: 20px">
<div>
<input type="file" @change="readLocalFile" accept="*.xls" id="files"/>
</div>
<h1>合格的</h1>
<div id="demo"></div>
<h1>不合格的</h1>
<div id="demo1"></div>
</div>
</template>
然后是JS部分
<script>
import * as XLSX from 'xlsx';
export default {
name: 'systemCallerCenter',
data(){
return{
list:[]
}
},
mounted() {
},
methods: {
readLocalFile(file, callback) {
var wb;
var rABS = false;
var xsl = file.target.files[0]
var reader = new FileReader();
reader.readAsArrayBuffer(xsl, { type: 'binary' });
reader.onload = function(e) {
console.log(e.target.result,1111111111111111)
var data = e.target.result;
if(rABS) {
wb = XLSX.read(btoa(fixdata(data)), {
type: 'base64'
});
} else {
wb = XLSX.read(data, {
type: 'binary'
});
}
console.log(XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]),'测试表格数据--JOSON')
}
var arr = []
var arr1 = []
setTimeout(()=>{
this.list = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]])
if(this.list.length>0){
var reg_tel = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/
this.list.forEach(item=>{
if(reg_tel.test(item['联系电话']) && item['联系电话'] !=''){
arr.push(item)
}else{
arr1.push(item)
}
})
}
document.getElementById("demo").innerHTML= JSON.stringify(arr );
document.getElementById("demo1").innerHTML= JSON.stringify(arr1 );
},2000)
}
}
}
</script>
运行结果
其实也很简单,首先选择一个excel文件,应为是无法直接拿到文件地址的,所以就直接选择拿取二进制文件流,然后通过转换,利用js-xlsx,即可直接转为需要的东西,所以js-xlsx这个东西还是很好用的。过程中做了一些文件读取后格式的判断不必要但是暂时留着了QAQ。
我是小柏,一个前端菜鸟,希望对读者有帮助
换工作大概五个多月了,最近想停下来总结一下。可能我还并不是一个足够理智的人,写总结也总是从自己很感性的一面切入的,我还是想先写一下自己的主观感受。【感到开心】公司的技术氛围特别好,我喜欢这种工作状态我感觉自己很幸运,遇到了一个超nice的mentor,他很温和也很有耐心【感到成长】这段时间里更多的是一个人在做事情,没有像之前一样总觉着不管什么问题都有大家伙一起扛着,独立做事情的过...
初级程序员使用别人的框架,中级程序员不仅会使用别人的框架还知道内部的实现原理,高级程序员则按需求编写自己的框架。而在Android 开发中,很多常用的第三方库都会使用到注解来实现,比如 ButterKnife、EventBus 等,通过一个标注来说明当前类/方法/变量的意义或是赋值,从而使得代码的可读性变强。那么今天我们就来聊聊这些主流框架中不可或缺的基石(休斯敦MVP-哈基石
一.内存的常见分配方式1. 从静态区分配,一般是全局变量和static类型变量2.从栈区分配内存,一般是局部的变量,会随着所在函数的结束而自动释放3.从堆中分配,一般是使用手动分配,使用malloc()函数和new来申请任意大小空间,不过要手动释放空间,相应的使用free()函数和delete释放,如果不释放该空间,而且指向该空间的指针指向了别的空间.则该空间就无法释放,造成内存泄
vs2019运行项目时报错出现MSB6006 “CL.exe”已退出,代码为 2。解决方法是是其他人写过很多解决办法,核心问题就两个,一个是非空函数调用未指定返回值,一个是指针未初始化。...
字体属性:(font)大小 font-size: x-large;(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX、PD样式 font-style: oblique;(偏斜体) italic;(斜体) normal;(正常)行高 line-height: normal;(正常) 单位:PX、PD、EM粗细 font-weight: bold;(粗体
三、实体层设计----细粒度划分--Hibernate-- 组件映射java 代码1. Person.java 2. 3. /* 4. * Hibernate - 组件(Component)映射 5. * 创建日期 2005-4-10 6. * @aut...
本文摘抄自《大型网站技术架构——核心原理与案例分析》,由李智慧 著 在互联网日益发展的今日,人们每天浏览着大大小小的网站,使用着各式各样的APP,无数的流量在无形中穿梭。那我们是如何判断一个网站或者APP的后台服务器端是技术强弱呢?每年大概有两个日子,是最能体现一个网站技术架构好坏的。一个是11月11日,传统的光棍节,同时也是我们马云爸爸为世界创造的一个...
现有如下输入:1. [Batch_size, Seq_len, N_classes]的tensor T2. [Batch_size, Seq_len]的mask矩阵 M需求:根据M中的值来mask T,并去掉被mask掉的值实际场景:主要是现在有一个对话的每个时刻的状态,和角色(0/1),需要取出角色为1的所有utterances的状态,在此基础上选取最后一个角色为1的utterance的状态问题点:若使用tf.boolean_mask,则会得到[?, N_classes], ?代表
用Safari访问内网的https网址 一直陷入了 此链接非私人链接 的无限循环,郁闷!网上的解决方案也试了,不起作用。我的方法是。1.找到证书名称。点击访问此网站,然后输入用户名密码,把证书添加到钥匙串。2打开钥匙串,找到证书3双击证书,展开‘信任’。选择始终信任即可输入mac用户密码,保存后,刷新网页即可进入。...
Android中广播(BroadcastReceiver)的详细讲解.1. BroadcastReceiver的注册过程: (1).广播消息发出来后,只有订阅了该广播的对象才会接收发出来的广播消息并做出相应处理。 **(2).**Android广播分为两个方面:广播发送者和广播接收者。Android中的广播使用了观察者模式,基于消息的发布/订阅事件模型。广播接收者通过Bin
思维导项图文件下载:https://download.csdn.net/download/chenxuegui123/11694647
前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式——在一个独立的文件夹通过makefile配合内核源码路径完成 那么如何将驱动直接编译进内核呢? 在我们实际内核的移植配置过程中经常听说的内核裁剪又是怎么麽回事呢?我们在进行linux内核配置的时候经常会执行make menuconfig这个命令,然后屏幕上会出现以下界面:这个界面是怎么生成的呢?跟我们经常说的内核配置与与编译又有什么关系呢?下面我们借此来讲解一下l...