> 文章列表 > 前端解析Excel中的数据进行操作

前端解析Excel中的数据进行操作

前端解析Excel中的数据进行操作

技术要点:Vue、Element、JSON

功能描述:读取Excel中的数据,利用JavaScript技术奖数据转成Json格式进行操作!

功能描述:只能用前端操作数据,并未实现将数据传送至后端处理!

注意注意注意

如果你的表格中只有一行数据是无法被读取的,这种方法只能读取至少两行的表格!

(1)例如这样的就无法读取。

前端解析Excel中的数据进行操作
(2)这样的就能读取两行。

前端解析Excel中的数据进行操作

(3)只限于前端操作,并未向后端提供excel数据

(一)安装插件:

1、element依赖

(1)安装element依赖

npm i element-ui -S

2、xlsx依赖

(1)安装xlsx依赖

npm install xlsx

(2)文件中引入

import XLSX from "xlsx";

(二)页面开发

1、添加Element组件

      <el-uploadaction="/":on-change="onChange":auto-upload="false":show-file-list="false"accept=".xls, .xlsx"><el-button size="small" type="primary" class="upload-bom uploadBtn"><span class="iconXlSX-sty-test">导入最佳位置点</span></el-button></el-upload>

2、methods方法添加

(1)引入依赖

import XLSX from "xlsx";

前端解析Excel中的数据进行操作

(2)文件选择回调

// 文件选择回调onChange(file, fileList) {console.log(fileList)this.$confirm("此操作将永久覆盖名单, 是否继续?", "提示", {confirmButtonText: "确定",cancelButtonText: "取消",}).then(() => {this.fileData = file; // 保存当前选择文件console.log(file)console.log(this.fileData )this.readExcel(); // 调用读取数据的方法}).catch(() => {this.$message({type: "info",message: "已取消",});});},

(3)Excel表格数据处理

      // 读取数据readExcel(e) {console.log(e)let that = this;const files = that.fileData;console.log(files)if (!files) {// 如果没有文件 - 当然也可以提醒用户弹个警告框 但是基本没有这种情况的出现return false;} else if (!/\\.(xls|xlsx)$/.test(files.name.toLowerCase())) {// 文件格式的判断this.$message.error("上传格式不正确,请上传xls或者xlsx格式");return false;}const fileReader = new FileReader();fileReader.onload = (ev) => {try {const data = ev.target.result;const workbook = XLSX.read(data, {type: "binary",});// 取第一张表const wsname = workbook.SheetNames[0];// 生成json表格内容const ws = XLSX.utils.sheet_to_json(workbook.Sheets[wsname]);// 循环 ws 取得其中的数据// 把 ws 打印出来 就可以看得很清楚了 之后就进行自己想要的操作就可以了// 没有一样的代码 没有一样的需求var temporary = [];var temporaryValue = [];// for (let i = 0; i < ws.length; i++) {//     temporary.push([//         ws[i].姓名 + "",//         ws[i].年龄,//     ]);// }//第一种方式console.log("JSON数据转换")console.log(ws[0])console.log(ws[1])console.log("JSON数据转换")//对Json数据进行处理for( var attr in ws[1] ){console.log( attr + ' : ' + ws[1][attr] );  // 注意这里访问不能用.访问,也不能加引号,否则就代表访问的是json里面名称为attr的值了temporary.push(parseInt(attr))temporaryValue.push(ws[1][attr])}this.init(temporaryValue);this.DistributorList = temporary;} catch (e) {return false;}};// 如果为原生 input 则应是 files[0]fileReader.readAsBinaryString(files.raw);},

(4)注意点

注意在这里如果你的表格中只有一行数据是无法被读取的,这种方法只能读取至少两行的表格!

3、JSON字符串处理方式

(1)JSON字符串:

var jsonStr ='{"name":"Liza", "password":"123"}' ;

(2)JSON对象:

var jsonObj = {"name":"Liza", "password":"123"};  //json对象的key键值对中的键必须带有“”

(3)JSON的遍历:

var json1 = { 'name' : 'yy' , 'age' : 11 , 'fun' : '前端开发' };
for( var attr in json1 ){alert( attr + ' : ' + json1[attr] );  // 注意这里访问不能用.访问,也不能加引号,否则就代表访问的是json里面名称为attr的值了
}

前端解析Excel中的数据进行操作