/**
* @description: 导入excel并进行数据提取
* @param {type}
* @return:
*/
Vue.prototype.$importExcel = function (file, header) {
let _this = this;
return new Promise(function (resolve, reject) {
const types = file.name.split('.')[1]
const fileType = ['xlsx', 'xlc', 'xlm', 'xls', 'xlt', 'xlw', 'csv'].some(item => item === types)
if (!fileType) {
_this.$message({
type: "warning",
message: "文件格式不正确,请重新选择!"
});
reject();
}
const reader = new FileReader();
reader.onload = function (e) {
const data = e.target.result;
this.wb = XLSX.read(data, {
type: "binary"
});
const wsname = this.wb.SheetNames[0];
const ws = this.wb.Sheets[wsname];
/* Convert array of arrays */
const sheetJson = XLSX.utils.sheet_to_json(ws);
let tableData = []; //转换为真正的table所需要的数据
for (let item of sheetJson) {
let obj = {};
for (let key in item) {
for (let childItem of _this.header) {
if (key === childItem.label) {
obj[childItem.prop] = item[key];
break;
}
}
}
tableData.push(obj);
}
resolve(tableData);
};
reader.readAsBinaryString(file.raw);
});
}

  

<template>
<div>
<el-upload
class="upload-demo"
ref="upload"
:auto-upload="false"
:on-change="change"
>
<el-button
style="margin-left: 10px;"
size="small"
type="success"
@click="submitUpload"
>上传到服务器</el-button>
</el-upload>
</div>
</template>
<script> </script>
import XLSX from "xlsx";
export default {
methods: {
submitUpload() {
this.$refs.upload.submit();
},
change(file) {
this.$importExcel(file, this.header).then(tableData => {
console.log(tableData);
});
},
}
}

  

导入excel并进行数据提取的更多相关文章

  1. MySQL批量导入Excel、txt数据

    MySQL批量导入Excel.txt数据 我想Excel是当今最大众化的批量数据管理软件了吧,所以我们会经常涉及到将Excel中数据导入到MySQL中的工作.网上有一些关于直接将Excel导入MySQ ...

  2. PLSQL导入Excel表中数据

     PL/SQL 和SQL Sever导入excel数据的原理类似,就是找到一个导入excel数据的功能项,按照步骤走就是了.下面是一个些细节过程,希望对像我这样的菜鸟有帮助.  www.2cto.co ...

  3. 使用PHP导入Excel和导出数据为Excel文件

    有时需要将Excel表格的数据导入到mysql数据库中,我们使用PHP的一个开源项目PHP-ExcelReader可以轻松实现Excel的导入.另外将mysql数据导出为Excel与本站上篇文章中导出 ...

  4. 导入Excel 类型的数据

    thinkphp 访问此控制方法就可以导入了 //数据导入 public function impUser(){ if (!empty($_FILES)) { $upload = new \Think ...

  5. C# 各种导入 Excel 文件的数据的方法总结

    在导入之前都需要将上传的文件保存到服务器,所以避免重复的写这些代码,先贴出上传文件并保存到服务器指定路径的代码. protected void btnImport_Click(object sende ...

  6. C#各种导入Excel文件的数据的方法总结

    在导入前都需要将上传的文件保存到服务器,所以避免重复的写这些代码,先贴出上传文件并保存到服务器指定路径的代码 protected void btnImport_Click(object sender, ...

  7. oracle导入Excel表文本数据

    首先导Excel表数据要先建和Excel表字段对应的表,然后将Excel表另存为Txt文本, 然后在Plsql客户端点击工具->文本导入器 然后这里要选择用户及其表,点击导入数据就可以

  8. Sql Server数据库导入Excel、txt数据详解,新人必看

    转自个人原创 https://blog.csdn.net/qq_15170495/article/details/104591606 数据库的要想导入数据,列的映射很是关键,只有列名匹配好,系统才知道 ...

  9. Asp.net导入Excel并读取数据

    protected void Button1_Click(object sender, EventArgs e) { if (station.HasFile == false)//HasFile用来检 ...

随机推荐

  1. iOS开发UIEvent事件简介

    1.UIEvent简介 UIEvent是代表iOS系统中的一个事件,一个事件包含一个或多个的UITouch: UIEvent分为四类: UIEventType typedef NS_ENUM(NSIn ...

  2. [转]mysql主从同步

    Mysql镜像机制配置过程主服务器:   192.168.0.25从服务器:   192.168.0.26MYSQL版本:mysql-5.0.22.tar.gz安装日期:2010年5月14日  一.镜 ...

  3. JS-copy到剪贴板

    因为 clipboard.js 兼容性受限

  4. jmeter接口测试(基础)

    一.jmeter创建请求 1.运行jmeter:jmeter.bat 2.右键测试计划,添加一个:线程组 3.右键前面添加的线程组,添加一个:http请求 4.填写请求信息:     5.右键线程组, ...

  5. USACO2012 Broken necklace /// DP oj10103

    题目大意: 项链最长的纯色连续段,“w”即white白色珠子,可任意涂为红或蓝,“r” “b”即红 蓝. Input Line 1:  N, the number of beads Line 2:   ...

  6. Eclipse中普通java项目转成Web项目

    在eclipse导入一个myeclipse建的web项目后,在Eclipse中显示的还是java项目,按下面的步骤可以将其转换成web项目. 1.找到项目目录下的.project文件 2.编辑.pro ...

  7. Java oop创建自定义异常

    package com.test; /** *不管是在方法定义时就使用try catch,还是在定义方法时将异常抛出在调用方法时使用try catch都能达到效果 * */public class M ...

  8. php 获取不到post的值

    一般在ajax提交的时候出现这种情况 当我们在ajax参数设置   contentType: 'application/json; charset=utf-8', 用file_get_contents ...

  9. PHP 添加 跨域头

    我将下面的代码,放在Codeigniter 项目中的index.php 中的 header('Access-Control-Allow-Origin: *'); header('Access-Cont ...

  10. p分位数的原理及计算

    p分位数的原理及计算 大纲>> 1.统计上的分位数概念   2.分位数的计算方法及举例 2.1首先确定p分位数的位置(依据项数分为基数.偶数情况) 2.2 求上一步确定的p分位数位置处的具 ...