当前位置: 首页 > news >正文

vue elementui 实现从excel从复制多行多列后粘贴到前端界面el-table

1、效果图

可以全部复制粘贴,也可以单独对某行、某列进行复制粘贴

从excel复制粘贴到前端页面的table上

2、实现代码

html部分:

<template><div><el-table:data="tableData"borderstyle="width: 100%":cell-class-name="getCellIndex"@paste.native="pasteInfo($event)"@cell-click="cellClick"><el-table-column prop="date" align="center" label="日期" width="180"><template slot-scope="scope"><el-input v-model="scope.row.date" placeholder="单行输入" clearable /></template></el-table-column><el-table-column prop="name" align="center" label="姓名" width="180"><template slot-scope="scope"><el-input v-model="scope.row.name" placeholder="单行输入" clearable /></template></el-table-column><el-table-column prop="address" align="center" label="地址"><template slot-scope="scope"><el-input v-model="scope.row.address" placeholder="单行输入" clearable /></template></el-table-column><el-table-column prop="jg" align="center" label="籍贯"></el-table-column><el-table-column prop="gz" align="center" label="工作"></el-table-column><el-table-column prop="xz" align="center" label="薪资"></el-table-column><el-table-column prop="age" align="center" label="年龄"><template slot-scope="scope"><el-input v-model="scope.row.age" placeholder="单行输入" clearable /></template></el-table-column><el-table-column prop="sex" align="center" label="性别"><template slot-scope="scope"><el-input v-model="scope.row.sex" placeholder="单行输入" clearable /></template></el-table-column><el-table-column prop="tel" align="center" label="电话"><template slot-scope="scope"><el-input v-model="scope.row.tel" placeholder="单行输入" clearable /></template></el-table-column></el-table></div>
</template>

js部分:

<script>
export default {name: 'testDemo',data() {return {tableData: [{date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄',jg: '北京',gz: '学生',xz: '0',age: 18,sex: '女',tel: '13112345678',}, {date: '2016-05-04',name: '王小虎',address: '上海市普陀区金沙江路 1517 弄',jg: '上海',gz: '销售',xz: '10000',age: 19,sex: '男',tel: '13112345678',}, {date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄',jg: '上海',gz: '行政',xz: '5000',age: 31,sex: '男',tel: '13112345678',}, {date: '2016-05-03',name: '王小虎',address: '上海市普陀区金沙江路 1516 弄',jg: '江苏',gz: '做生意',xz: '50000+',age: 48,sex: '男',tel: '13112345678',}],rowIndex: undefined,columnIndex: undefined,}},methods: {/** 设置行、列索引 */getCellIndex: function ({ row, column, rowIndex, columnIndex }) {row.index = rowIndex;column.index = columnIndex;},/** 点击单元格 */cellClick(row, column, cell, event) {// console.log(row, column, cell, event);this.rowIndex = row.indexthis.columnIndex = column.index},/** 复制粘贴 */pasteInfo(e) {try {e.preventDefault(); //阻止默认粘贴事件e.stopPropagation(); //阻止事件冒泡var data = null;var clipboardData = e.clipboardData || window.clipboardData; // IEif (!clipboardData) {//chromeclipboardData = e.originalEvent.clipboardData;}data = clipboardData.getData("Text"); //复制过来的内容//首先对源头进行解析var rowStrArray = data.split("\r\n"); //拆成多行let rows = [];for (var i = 0; i < rowStrArray.length-1; i++) {var row = [];var tdStrArray = rowStrArray[i].split("\t"); //按列拆分for (var j = 0; j < tdStrArray.length; j++) {row.push(tdStrArray[j]);}rows.push(row);}// console.log(rows,'---------rows')let emptyObj = { //需要复制粘贴的key值列date: undefined,name: undefined,address: undefined,jg: undefined,gz: undefined,xz: undefined,age: undefined,sex: undefined,tel: undefined,}for (var j = 0; j < rows.length; j++) {if(this.rowIndex+j > this.tableData.length - 1){break}let item = {}item = JSON.parse(JSON.stringify(this.tableData[this.rowIndex+j]))let num = 0let numFlag = 0 //从哪一列开始粘贴:全部列都可以粘贴(即从第0列可以粘贴)for (var key in emptyObj) {if (!rows[j][num]) {break}// console.log('numFlag--', numFlag, 'this.columnIndex--', this.columnIndex, 'num-', num);if (this.columnIndex <= numFlag) {// 针对不能修改的列字段做处理,可以复制粘贴的列才做赋值。根据需求加下面的if判断if (key !== 'jg' && key !== 'gz' && key !== 'xz') {item[key] = rows[j][num]}num = num + 1}numFlag = numFlag + 1}this.$set(this.tableData, this.rowIndex+j, item)}} catch(err) {this.$message.error('请选择粘贴位置')}},}
}
</script>

相关文章:

vue elementui 实现从excel从复制多行多列后粘贴到前端界面el-table

1、效果图 可以全部复制粘贴&#xff0c;也可以单独对某行、某列进行复制粘贴 从excel复制粘贴到前端页面的table上 2、实现代码 html部分&#xff1a; <template><div><el-table:data"tableData"borderstyle"width: 100%":cell-class-…...

C++学习 --类和对象之友元

目录 1&#xff0c; 全局函数做友元 2&#xff0c; 类做友元 3&#xff0c; 成员函数做友元 友元可以让函数、成员函数、类&#xff0c; 访问另外一个类的私有变量 1&#xff0c; 全局函数做友元 在类中&#xff0c; 通过friend 数据类型 函数名()方式&#xff0c;将函数当…...

Flutter笔记:使用Flutter构建响应式PC客户端/Web页面-案例

Flutter笔记 使用Flutter构建响应式PC客户端/Web页面-案例 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/detai…...

聊聊LogbackMDCAdapter

序 本文主要研究一下LogbackMDCAdapter MDCAdapter org/slf4j/spi/MDCAdapter.java public interface MDCAdapter {/*** Put a context value (the <code>val</code> parameter) as identified with* the <code>key</code> parameter into the cur…...

spring命名空间注入和XML自动装配、引入外部配置文件

Spring p命名空间注入util命名空间注入基于XML的自动装配根据名称自动装配 Spring引入外部属性配置文件 p命名空间注入 作用&#xff1a;简化配置。 使用p命名空间注入的前提条件包括两个&#xff1a; ● 第一&#xff1a;在XML头部信息中添加p命名空间的配置信息&#xff1a…...

【2024年11月份--2024精灵云校招C++笔试题】

​ 考试形式 笔试考了三道算法题&#xff0c;笔试形式为阅读题目&#xff0c;然后用中文给出算法思路&#xff0c;最后给出算法例程&#xff0c;分数各占一半&#xff0c;简单&#xff0c;中等&#xff0c;复杂各一道题。我看9月份有人也是考这3道题&#xff0c;一模一样。 第…...

Visual Studio 2019下编译OpenCV 4.7 与OpenCV 4.7 contrib

一、环境 使用的环境是Win10,Visual Studio 2019,Cmake3.28,cdua 11.7&#xff0c;cudnn 8.5,如果只是在CPU环境下使用&#xff0c;则不用安装CUDA。要使用GPU处理&#xff0c;安装好CUDA之后&#xff0c;要测试安装的CUDA是否能用。不能正常使用的话&#xff0c;添加一下系统…...

【Linux网络】系统调优之聚合链路bonding,可以实现高可用和负载均衡

一、什么是多网卡绑定 二、聚合链路的工作模式 三、实操创建bonding设备&#xff08;mode1&#xff09; 1、实验 2、配置文件解读 3、查看bonding状态,验证bonding的高可用效果 三、nmcli实现bonding 一、什么是多网卡绑定 将多块网卡绑定同一IP地址对外提供服务&#xf…...

k8s持久化存储PV、PVC

容器磁盘上的文件的生命周期是短暂的&#xff0c;这就使得在容器中运行重要应用时会出现一些问题。首先&#xff0c;当容器崩溃时&#xff0c;kubelet 会重启它&#xff0c;但是容器中的文件将丢失——容器以干净的状态&#xff08;镜像最初的状态&#xff09;重新启动。其次&a…...

CocosCreator3.8原生引擎源码研究

1. Cocos Creator引擎架构图 2. 原始引擎源码流程图 下图中包含Android native层引擎到js适配层的启动和主循环的启用流程和必要说明&#xff0c;本猿比较懒&#xff0c;暂时不细述了&#xff0c;各位看官直接看图吧&#xff0c;还在细化扩充&#xff0c;后续逐渐更新。。。 版…...

高二英语上

unit 1 1.yarn三种意思 1.码&#xff1b; 2.庭院&#xff0c;天井&#xff1b; 3.花园&#xff1b;down**down 在这里是介词,也可以作副词&#xff0c;与 down 相对的是 up。请比较下列两句: 1.Look! Hes driving down the street . 2.Look! Hes driving up the street .这两例…...

JavaWeb Day10 案例 准备工作

目录​​​​​​​ 一、需求说明 二、环境搭建 &#xff08;一&#xff09;数据库 &#xff08;二&#xff09;后端 ①controller层 1.DeptController.java 2.EmpController.java ②mapper层 1.DeptMapper.java 2.EmpMapper.java ③pojo层 1.Dept.java 2.Emp.jav…...

Nginx:不同域名访问同一台机器的不同项目

Nginx很简单就可以解决同一台机器同时跑两个或者多个项目&#xff0c;而且都通过域名从80端口走。 以Windows环境下nginx服务为例&#xff0c;配置文件nginx.conf中&#xff0c;http中加上 include /setup/nginx-1.20.1/conf/conf.d/*.conf;删除server部分&#xff0c;完整如…...

C++(20):new数组时元素个数自动推到

C20在new数组时可以根据初始化列表&#xff0c;自动推到元素个数&#xff1a; #include <iostream> using namespace std;int main() {int *pd new int[]{1,2,3,4};for(auto i 0; i < 4; i){cout<<pd[i]<<endl;}return 0; }运行程序输出&#xff1a; 1…...

使用visualStudio发布可执行文件

编译成功后会在程序项目的路径下创建一个debug文件夹和一个release文件夹 文件夹中的具体文件入下所示 生成32位的可执行文件 32位的可执行文件可以在64位的计算机中执行&#xff0c;而64位的操作系统程序只能在64位的计算机中执行安装运行库的安装包根据电脑的版本选择合适的…...

yolo系列报错(持续补充ing)

文章目录 export GIT_PYTHON_REFRESHquiet解决 没有pt权重文件解决 python文件路径报错解决 读取文件列名报错解决 导入不同文件夹出错解决 megengine没有安装解决然后你发现它竟然还没有用 export GIT_PYTHON_REFRESHquiet 设置环境变量 GIT_PYTHON_REFRESH &#xff0c;这个…...

Technology Strategy Patterns 学习笔记9 - bringing it all together

1 Patterns Map 2 Creating the Strategy 2.1 Ansoff Growth Matrix 和owth-share Matrix 区别参见https://fourweekmba.com/bcg-matrix-vs-ansoff-matrix/ 3 Communicating...

Redis(12)| 过期删除策略和内存淘汰策略

Redis 是可以对 key 设置过期时间的&#xff0c;因此需要有相应的机制将已过期的键值对删除&#xff0c;而做这个工作的就是过期键值删除策略。 如何设置过期时间 先说一下对 key 设置过期时间的命令。 设置 key 过期时间的命令一共有 4 个&#xff1a; expire key n&#x…...

Go-服务注册和发现,负载均衡,配置中心

文章目录 什么是服务注册和发现技术选型 Consul 的安装和配置1. 安装2. 访问3. 访问dns Consul 的api接口go操作consulgrpc下的健康检查grpc的健康检查规范动态获取可用端口号 负载均衡策略1. 什么是负载均衡2. 负载均衡策略1. 集中式load balance2. 进程内load balance3. 独立…...

k8s-实验部署 1

1、k8s集群部署 更改所有主机名称和解析 开启四台实验主机&#xff0c;k8s1 仓库&#xff1b;k8s2 集群控制节点&#xff1b; k8s3 和k8s4集群工作节点&#xff1b; 集群环境初始化 使用k8s1作为仓库&#xff0c;将所有的镜像都保存在本地&#xff0c;不要将集群从外部走 仓库…...

3种方式解决本地大模型推理的Python性能瓶颈

3种方式解决本地大模型推理的Python性能瓶颈 【免费下载链接】llama-cpp-python Python bindings for llama.cpp 项目地址: https://gitcode.com/gh_mirrors/ll/llama-cpp-python 还在为本地运行大型语言模型时的性能瓶颈而苦恼吗&#xff1f;llama-cpp-python作为llama…...

Glyph视觉推理快速上手:从镜像拉取到网页推理全流程

Glyph视觉推理快速上手&#xff1a;从镜像拉取到网页推理全流程 1. 引言&#xff1a;为什么选择Glyph视觉推理 想象一下&#xff0c;你需要处理一本几百页的小说内容&#xff0c;传统的大模型需要消耗大量显存来存储这些文本的token信息。而Glyph视觉推理模型提供了一种全新的…...

让旧iPhone重获新生:Legacy iOS Kit全面降级与越狱指南

让旧iPhone重获新生&#xff1a;Legacy iOS Kit全面降级与越狱指南 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit …...

【反蒸馏实战 05】数据库管理员:当云数据库接管了80%的日常运维,你的价值在哪里?@从“数据库运维”到“数据架构师”实战指南

摘要:2026年,甲骨文47人DBA团队被3名架构师+AI取代,AI接管94%的数据库维护工作——这标志着传统DBA的“操作时代”终结。本文结合Redgate 2026数据库行业报告、TiDB全员信等权威数据,拆解AI对DBA的冲击全景,提出“思维-能力-工作流”三级反替代模型。通过4个核心实操模块(…...

Cursor AI Pro智能激活四重奏:自动化工具的革命性实践指南

Cursor AI Pro智能激活四重奏&#xff1a;自动化工具的革命性实践指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your…...

CFD Vision 2030:解码计算流体动力学的未来革命路径(技术解析篇)

1. CFD Vision 2030的核心挑战与现状 计算流体动力学&#xff08;CFD&#xff09;在航空航天领域已经彻底改变了传统设计流程。十年前那份具有里程碑意义的报告《CFD Vision 2030》描绘了一个令人振奋的技术蓝图&#xff0c;但当我们站在2024年回望时&#xff0c;发现现实进展与…...

Surge实战:构建一个实时音频处理应用

Surge实战&#xff1a;构建一个实时音频处理应用 想要开发高性能的实时音频处理应用&#xff1f;Surge 是你的最佳选择&#xff01;这款强大的Swift库利用Accelerate框架&#xff0c;为矩阵运算、数字信号处理和图像操作提供高性能函数。无论你是音频开发新手还是经验丰富的工程…...

GLM-4V-9B保姆级安装教程:Docker一键部署,支持多轮对话

GLM-4V-9B保姆级安装教程&#xff1a;Docker一键部署&#xff0c;支持多轮对话 1. 环境准备与快速部署 1.1 系统要求 操作系统&#xff1a;Linux (推荐Ubuntu 20.04)显卡&#xff1a;NVIDIA GPU (显存≥24GB)驱动&#xff1a;NVIDIA驱动≥515.65.01Docker&#xff1a;19.03C…...

北京中建协认证中心:中国建筑业企业数字化研究报告 2026

这份《中国建筑业企业数字化研究报告&#xff08;2025&#xff09;》核心是以 “企业数字化 项目全生命周期数字化” 双主线为框架&#xff0c;系统梳理建筑业数字化转型的现状、路径、场景、风险与政策建议&#xff0c;核心总结如下&#xff1a;一、核心定位与双主线逻辑行业…...

QHotkey:跨平台全局快捷键解决方案架构与实践指南

QHotkey&#xff1a;跨平台全局快捷键解决方案架构与实践指南 【免费下载链接】QHotkey A global shortcut/hotkey for Desktop Qt-Applications 项目地址: https://gitcode.com/gh_mirrors/qh/QHotkey QHotkey是一个专为Qt桌面应用程序设计的全局快捷键管理工具&#x…...