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

html实现粘贴excel数据,在页面表格中复制

录入数据时,有时候需要把excel中的数据一条条粘贴到页面中,当数据量过多时,这种操作很令人崩溃。本篇文章实现了从excel复制好多行数据后,可在页面粘贴的功能

具体实现代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>可编辑表格</title>
<style>#textarea {width: 80%;min-height: 100px;border: 1px solid #ccc;}table {width: 100%;border-collapse: collapse;}th, td {border: 1px solid #ccc;padding: 8px;text-align: left;}th {background-color: #f2f2f2;}
</style>
</head>
<body><textarea id="textarea"></textarea><table id="myTable"><thead><tr><th>姓名</th><th>年龄</th><th>职业</th></tr></thead><tbody><tr><td>张三</td><td>30</td><td>程序员</td></tr><tr><td>李四</td><td>28</td><td>设计师</td></tr></tbody></table><script>document.addEventListener('DOMContentLoaded', function() {const inputElement = document.getElementById('textarea');function handlePasteEvent(event) {// event.preventDefault(); // 可选:阻止默认粘贴行为// 获取粘贴板数据const clipboardData = event.clipboardData || window.clipboardData;const pastedData = clipboardData.getData('Text');// 初始化用于存储解析后的数据的数组let arr = [];try {arr = pastedData.split('\n').filter(item => item !== '') // 兼容Excel行末\n,防止出现多余空行.map(item => item.split('\t')) // 将每行按制表符分割成列.map(item => {// 去掉每列中的\r字符,使用模板字符串return item.map(str => str.replace(/\r/g, ''));});} catch (error) {console.error("Error parsing pasted data:", error);return; // 在遇到异常时终止处理}if (arr.length === 0) {console.warn("Pasted data is empty or in an unrecognized format.");return;}const table = document.getElementById("myTable");const cells = table.rows.item(0).cells.length; // 表格的列数// 创建一个文档片段,用于批量添加新行到DOM中,减少重绘次数const fragment = document.createDocumentFragment();arr.forEach(item => {const newRow = document.createElement("tr");for (let i = 0; i < cells; i++) {const newCell = document.createElement("td");newCell.textContent = item[i] || '';newRow.appendChild(newCell);}fragment.appendChild(newRow); // 先将新行添加到文档片段中});table.appendChild(fragment); // 最后将整个文档片段一次性添加到表格中}// 添加粘贴事件监听器inputElement.addEventListener('paste', handlePasteEvent);});</script>
</body>
</html>

效果图

在这里插入图片描述

http://www.lryc.cn/news/371194.html

相关文章:

  • WPF视频学习-简单应用篇图书馆程序(一)
  • Java+前端+Vue 后端Spring boot 开发的全套UWB定位方案,0.1米高精度定位系统源码
  • Mysql查询分析工具Explain的使用
  • OpenCV中的圆形标靶检测——findCirclesGrid()(一)
  • 2025广州眼博会,2025广东省眼睛健康及眼科产业展览会
  • Vue3 自定义渲染器 API createRenderer()(七)
  • 二分+ST表+递推,Cf 1237D - Balanced Playlist
  • 被裁员不可怕,可怕的是你只会写代码!
  • 服务器之间的时间如何保证一致
  • 算法体系-20 第二十节暴力递归到动态规划
  • 字符集相关变量理解
  • 618哪些数码产品比较好?2024超高人气产品推荐!
  • 基础-01-计算机网络概论
  • STM32学习笔记(一)--时钟树详解
  • JAVA小知识16:JAVA常用的API
  • PaddleDetection快速体验quick_start
  • 《Foundation CSS 参考手册》
  • 方法递归-结合案例阶乘问题、求和问题和猴子吃桃问题
  • 有一个主域名跟多个二级子域名时该怎么申请SSL证书?
  • LabVIEW伺服电机可应用在哪些领域
  • nvidia 显卡 没有正确安装或配置 OpenGL 库
  • 将自己md文件发布到自己的博客园实现文件的持久化存储
  • uni-app的生命周期(应用,页面生命周期)
  • 响应式企业网站建站系统源码 模版丰富+一站式建站 全开源可二次开发 带源码包+搭建部署教程
  • 如何解除内存卡的写保护并格式化为exFAT文件系统
  • 【 EI会议 | 西南大学主办 | 往届均已实现检索】第三届神经形态计算国际会议(ICNC 2024)
  • 利用python爬虫采集苹果公司各产品销售收入统计报告
  • ethercat igh可能出现的两个bug
  • 计算机网络知识点(三)
  • 关于认证协议