导入excel并进行数据提取
/**
* @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并进行数据提取的更多相关文章
- MySQL批量导入Excel、txt数据
MySQL批量导入Excel.txt数据 我想Excel是当今最大众化的批量数据管理软件了吧,所以我们会经常涉及到将Excel中数据导入到MySQL中的工作.网上有一些关于直接将Excel导入MySQ ...
- PLSQL导入Excel表中数据
PL/SQL 和SQL Sever导入excel数据的原理类似,就是找到一个导入excel数据的功能项,按照步骤走就是了.下面是一个些细节过程,希望对像我这样的菜鸟有帮助. www.2cto.co ...
- 使用PHP导入Excel和导出数据为Excel文件
有时需要将Excel表格的数据导入到mysql数据库中,我们使用PHP的一个开源项目PHP-ExcelReader可以轻松实现Excel的导入.另外将mysql数据导出为Excel与本站上篇文章中导出 ...
- 导入Excel 类型的数据
thinkphp 访问此控制方法就可以导入了 //数据导入 public function impUser(){ if (!empty($_FILES)) { $upload = new \Think ...
- C# 各种导入 Excel 文件的数据的方法总结
在导入之前都需要将上传的文件保存到服务器,所以避免重复的写这些代码,先贴出上传文件并保存到服务器指定路径的代码. protected void btnImport_Click(object sende ...
- C#各种导入Excel文件的数据的方法总结
在导入前都需要将上传的文件保存到服务器,所以避免重复的写这些代码,先贴出上传文件并保存到服务器指定路径的代码 protected void btnImport_Click(object sender, ...
- oracle导入Excel表文本数据
首先导Excel表数据要先建和Excel表字段对应的表,然后将Excel表另存为Txt文本, 然后在Plsql客户端点击工具->文本导入器 然后这里要选择用户及其表,点击导入数据就可以
- Sql Server数据库导入Excel、txt数据详解,新人必看
转自个人原创 https://blog.csdn.net/qq_15170495/article/details/104591606 数据库的要想导入数据,列的映射很是关键,只有列名匹配好,系统才知道 ...
- Asp.net导入Excel并读取数据
protected void Button1_Click(object sender, EventArgs e) { if (station.HasFile == false)//HasFile用来检 ...
随机推荐
- [zz]winform 窗体关闭事件
注册窗体关闭事件: 在Form1.Designer.cs 文件中添加: this.FormClosing += new System.Windows.Forms.FormClosingEventHan ...
- 往github上上传项目
点击start a project 新建 下面部分传送http://blog.csdn.net/s740556472/article/details/55000019 如图: 这里我们有一个步骤需要做 ...
- axios 基本运用
axios是专门对ajax请求进行封装的一个插件,其返回一个promise对象,用法跟ES6的promise很相似 一.安装axios插件npm install axios 二.引入axios插件 在 ...
- ES6 学习 -- 箭头函数(=>)
(1).只有一个参数且只有一句表达式语句的,函数表达式的花括号可以不写let test = a => a; // 只有一个参数a,这里的表达式相当于 "return a" ( ...
- css之页面三列布局之左右上下高度固定,中间自适应
第一种,绝对定位 !DOCTYPE HTML> <html> <head> <meta charset="gb2312"> <tit ...
- iOS进阶五-RunLoop
简介 RunLoop 运行循环.跑圈 RunLoop的作用主要体现在三方面: 1.保持程序持续运行 2.处理App中的各种事件(比如触摸事件.定时器事件.Selector事件) 3.节省CPU资源,提 ...
- 服务启动脚本start_boot.sh
vim start_boot.sh #!/bin/bash usage(){ echo "$0 [start|stop|usage]" } status_springboot(){ ...
- SUBTRACT
SUBTRACT 给出一个长度为n序列\(\{a_i\}\),定义一个操作,记做\(con(a,i)\),意思是用\(a_i-a_{i+1}\)替代\(a_i,a_{i+1}\),显然最后一个数字不能 ...
- Sublime Text最舒服的主题
Theme - Afterglow (官网链接) 贴上 preferences -> settings 里面的配置 { "theme": "Afterglow-gr ...
- 使用ajax怎么请求跨域资源
1.ajax中添加“xhrFields”和“crossDomain”,如: $.ajax({ url: url, data: data, type: "post", xhrFiel ...