vue实现复制excel内容粘贴到el-table中
AI 概述
需求
从 excel 复制选中的内容,然后在 el-table 里面粘贴,从而实现数据的批量导入到后台管理系统中,这样就不用一个一个输入了。
原理
因为现在的谷歌等浏览器从安全等角度考虑,禁止直接读取剪切板上的东西。所以要手动的实现粘贴的这一步,通过粘贴到 text 文档上,然后,使用 for 遍历,根据 \n 把每一行分开,然后...
需求
从 excel 复制选中的内容,然后在 el-table 里面粘贴,从而实现数据的批量导入到后台管理系统中,这样就不用一个一个输入了。
原理
因为现在的谷歌等浏览器从安全等角度考虑,禁止直接读取剪切板上的东西。所以要手动的实现粘贴的这一步,通过粘贴到 text 文档上,然后,使用 for 遍历,根据 \n 把每一行分开,然后再根据\t 把每一列的数据都提取出出来,对应着存入到表格中。
没有使用什么插件啥的,就几行原生 js 代码就实现了:

完整代码如下:
<template>
<div class="book">
<el-input type="text" v-model="paster" @paste.native="pasteMe" />
<el-table :data="tableData">
<el-table-column prop="name" label="姓名" width="120"> </el-table-column>
<el-table-column prop="age" label="年龄" width="80"> </el-table-column>
<el-table-column prop="sex" label="性别" width="80"> </el-table-column>
<el-table-column prop="education" label="学历" width="120"> </el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
paster: "",
tableData: [
{
name: "赵老二",
age: "28",
sex: "男",
education:"本科"
},
{
name: "钱多多",
age: "25",
sex: "女",
education: "研究生",
},
{
name: "孙不客",
age: "21",
sex: "男",
education: "教授",
},
{
name: "李自成",
age: "27",
sex: "男",
education: "院长",
},
],
};
},
methods: {
pasteMe(e) {
let source = e.clipboardData.getData("Text");
// console.log(source);
// 首先对源头进行解析
let rows = source.split("\n"); // 拆成很多行
// console.log(rows);
for (let i = 0; i < rows.length; i++) {
// console.log(rows[i])
if (rows[i] != "") {
// 如果某一行不是空,再按列拆分
let columns = rows[i].split("\t"); // 已经按列划分
// console.log(columns);
let dataone = {}; // 声明一行数组
for (let j = 0; j < columns.length; j++) {
// 读取 tableData 里的第 j 对应的 key 值
let keys = Object.keys(this.tableData[j]); // key 的名
dataone[keys[j]] = columns[j];
}
// console.log(dataone);
this.tableData.push(dataone);
console.log(this.tableData);
}
}
},
},
};
</script>
<style>
.book {
width: 50%;
height: 400px;
border: 1px solid red;
margin: 0 auto;
margin-top: 50px;
overflow-y: scroll;
}
.el-input__inner {
height: 100px !important;
}
</style>
\t是制表符,\r是换行,\n是回车

以上关于vue实现复制excel内容粘贴到el-table中的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » vue实现复制excel内容粘贴到el-table中
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » vue实现复制excel内容粘贴到el-table中

微信
支付宝