Vue实现复制excel表格内容粘贴至网页

有一个项目要求复制excel表格内容粘贴至网页表格,并且自动生成格式(合并单元格等)
(别问为什么不直接上传excel表格,用户不喜欢。。。)

最后决定的做法是根据页面生成一个excel模板,如下:

上图模板前三行(我这里项目要求前三行合并)对应下图

粘贴后效果如下:

大概思路就是
1.根据项目需求在页面下载excel表格模板(用处:用户填写后复制内容并粘贴到网页端)
2.前端部分用handsontable等表格组件匹配填写数据
3.renderer下表格确保固定项目部分填写(或者直接在模板里面写,这样做可以确保准确性)
4.表格内容变动后动态合并新增部分

excel表格生成模板下载

因为我的项目表格是写死的,直接保存在后端下载就可以了。
handsontable可以直接前端数据导出,具体方式参考:
https://www.cnblogs.com/malng/p/10755353.html

Handsontable

表格组件其实用啥都行,这个就不细说了

表格格式

 data() {return {//hansontable一堆设置都在这里,所以只说明主要部分hotSettings: {//数据部分,这个就不多说了data: [{ orgId: 11000, hasLinedata: '否', budLinedatas: [] },{ orgId: 11000 },{ orgId: 11000 }],//这个就是合并单元格的数据,从第Row行开始,合并Rowspan个单元格,列也一样//因为是初始化的数据,所以只要第一个,其他的我们后面再写mergeCells: [{ row: 0, col: 0, rowspan: 3, colspan: 1 },…………………………{ row: 0, col: 24, rowspan: 3, colspan: 1 }],//这个就是表格设计了,自己参考handsontable文档吧colHeaders: [……], { data: 'orgId', // 部门,readOnly: true,className: 'htMiddle htCenter notread' },//renderer部分,写死一部分内容啥的,renderer: function(instance, td, row, col, prop, value, cellProperties) {if (row % 3 === 0) {Handsontable.dom.empty(td)td.innerText = '每三行第一行是啥'Handsontable.dom.addClass(td, 'htMiddle htCenter notread')return td} else if (row % 3 === 1) {Handsontable.dom.empty(td)td.innerText = '每三行第2行是啥'Handsontable.dom.addClass(td, 'htMiddle htCenter notread')return td} else {Handsontable.dom.empty(td)td.innerText = '每三行第3行是啥'Handsontable.dom.addClass(td, 'htMiddle htCenter notread')return td}}},

表格内容变动后动态合并新增部分

这部分其实就是监控数据变化然后合并单元格
三种方式参考了这里:
https://blog.csdn.net/Welkin_qing/article/details/81585786

不过afterchange我只用了最后一个方法才成功:

//引入handsontable的时候先绑定一下after-change,就是数据变更时会调用绑定的方法
<!-- 绑定afterchange动态合并单元格 --><hot-tableref="textHot":settings="hotSettings":after-change="mergeCell"class="table_info"/>methods: {//动态监视粘贴内容自动生成行数并合并单元格mergeCell(changes) {// 有变化if (changes) {// 遍历变化行数changes.forEach(([row]) => {// 只对3的倍数行进行合并//这里条件判断可以写复杂一点,确保粘贴非3倍数时候的处理,我偷懒所以。。if ((row/3)===this.hotSettings.mergeCellsCount) {// 合并处理this.hotSettings.mergeCells.push({ row: row, col: 0, rowspan: 3, colspan: 1 },…………………………{ row: row, col: 24, rowspan: 3, colspan: 1 });// 只合并一次提高运行效率,不然粘贴大量数据多次合并会卡this.hotSettings.mergeCellsCount++}});}

Vue实现复制excel表格内容粘贴至网页相关推荐

  1. 实现复制excel表格内容粘贴至网页的功能

    需求 要求从excel表格中复制一列,粘贴到网页的input框中,并自动赋值到对应的input框里 实现过程 使用监听paste事件,根据事件提供的clipboardData属性,获取数据 HTML代 ...

  2. 为何excel中数据无法计算机,电脑中excel表格内容无法复制的解决方法

    一位朋友反馈自己在Excel中录入完数据后想要进行复制,将工作表内容直接复制到另一个表中去,可是操作时却失败了.那么,这该怎么办呢?下面是小编给大家分享的电脑中excel表格内容无法复制的解决方法.有 ...

  3. excel 复制 格式不变_ 如何复制Excel表格保持格式及列宽不变

    excel 复制 格式不变_ 如何复制Excel表格保持格式及列宽不变 == excel 粘贴的时候,经常格式就乱了,我们想要保持原来的样式. 有的之后粘贴后,右下角有个 图标 可以选择 保留原格式. ...

  4. vue数组转Excel表格导出

    vue数组转Excel表格导出 安装依赖 npm i xlsx vue组件 <template><div><el-button type="success&qu ...

  5. java 简单获取Excel表格内容(初学者)

    java 简单获取Excel表格内容(初学者) 代码: package cn.ccaih.read;import org.apache.poi.ss.usermodel.Cell; import or ...

  6. vue 在线编辑excel表格(原生和使用组件的两种方式)

    vue 在线编辑excel表格(原生和使用组件的两种方式) top表头和left表头格式的表格 <template><div><!-- 用组件写的编辑表格 -->& ...

  7. excel表格内容合并的技巧?

    今天跟大家分享一下excel表格内容合并的技巧? 1.打开演示文件,如下图要求将多个表格合并到一起. 2.首先我们点击下图选项 3.点击[汇总拆分]-[合并多表] 4.勾选要合并的工作表 5.然后根据 ...

  8. vue中导出Excel表格

    vue中导出Excel表格 项目中我们可能会碰到导出Excel文件的需求,一般后台管理系统中居多,将table中展示的数据导出保存到本地.当然我们也可以通过一些处理来修改要导出的数据格式,具体需求具体 ...

  9. Excel表格如何保存为网页形式

    Excel表格如何保存为网页形式 目录 Excel表格如何保存为网页形式 1.在"文件"选项卡中点击"另存为" 选择"其他格式" 2.在&q ...

最新文章

  1. python运行程序-Python中四种运行其他程序的方式
  2. [Android工具]安卓百度云盘百度网盘资源搜索工具,安卓网盘搜索软件
  3. Spring boot + mybatis + oracle代码生成器
  4. Zookeeper数据一致性原理
  5. 正则匹配后缀 html,如何用正则匹配后缀名不为.jpg, .css, .js, .html, .htm, .png的文件...
  6. python c/s模式下的内存监控模拟代码
  7. c语言生成1 100随机数求和,c语言 产生1~100随机数,输入一个数字,和第x个随机数一致的话,计算1~x个随机数的和...
  8. java输出date_Java萌新的小小总结:Date日期类数据以给定格式打印输出
  9. 薛定谔Maestro教程--用户界面1
  10. js获取当前html路径,JavaScript获取当前url根目录(路径)
  11. 谷歌AI版“你画我猜”刷屏朋友圈,背后是这样的原理!
  12. 戴尔服务器u盘装系统看不见磁盘,戴尔电脑u盘装系统找不到硬盘怎么解决
  13. 回溯算法-数独(计算器)
  14. C++内存管理机制—Primitives笔记
  15. wd移动硬盘不能识别_西部数据移动硬盘无法识别恢复
  16. Microsoft SQL Server 2000 Service Pack 3a
  17. mac安装MongoDB与启动
  18. 【C语言进阶】常见数据格式转换处理的代码实现
  19. 网络兼职圈套你知道多少?拓商提醒您谨防被骗
  20. 机器学习高阶理论知识列表

热门文章

  1. 高颜值家庭娱乐小能手 荣耀畅玩平板 2真机评测
  2. Hexo Next 7.71
  3. 狗云输入法是个概念车,但是真的云
  4. 01背包问题动态规划(二维数组)
  5. 文件加解密(任意文件类型的文件)
  6. 2022 第七届数维杯大学生数学建模挑战赛题目思路
  7. 三种方式将wmv格式的视频快速转为mp4
  8. java 三次贝塞尔曲线算法_转:穿过已知点画平滑曲线(3次贝塞尔曲线)
  9. 【php】微信公众平台--点歌功能
  10. STM32-RCC时钟-时钟树介绍