Vue+elementui 实现复杂表头和动态增加列的二维表格功能


Posted in Javascript onSeptember 23, 2019

先上完成的效果图:列是根据查询结果增加的

Vue+elementui 实现复杂表头和动态增加列的二维表格功能

 数据格式:

Vue+elementui 实现复杂表头和动态增加列的二维表格功能

 表头的数据取出:

data.data.forEach(element => {
   this.thead.push({
   品名: element.品名,
   面取数: element.面取数,
   LOTNO: element.LOT
   });

 element table中:

<el-table-column
 v-for="(item,index) in thead"
 :prop="item.LOTNO"
 :key="index"
 align="center"
 width="180"
>
 <template slot="header">
 <tr>
  <td>{{item.品名}}</td>
 </tr>
 <tr>
  <td>{{item.面取数}}</td>
 </tr>
 <tr>
  <td @click="querylot(item.LOTNO)">
  <el-link>{{item.LOTNO}}</el-link>
  </td>
 </tr>
 </template>
</el-table-column>

表格内数据整理:

for (let index1 = 3;index1 < Object.keys(结果_data[0]).length;index1++) {
  let newmap = new Map();
  let datakey = Object.keys(结果_data[0])[index1];
  newmap.set("mode", datakey); //取出每个数组对象的键值
  for (let index2 = 0; index2 < 结果_data_length; index2++) {
   let datavalue = 结果_data[index2][Object.keys(结果_data[0])[index1]];
   if (datakey == "投入日期") {
   datavalue = datavalue.slice(0, 10);
   }
   newmap.set(
   结果_data[index2][Object.keys(结果_data[index2])[0]],datavalue);//获得这个键对应的所有的值
  }

左侧表头合并:需要注意的是,当有固定列的时候需要设置表格的max-height属性,不然会出现列空白

<el-table :data="tableData" span-method="objectSpanMethod">

objectSpanMethod({ row, column, rowIndex, columnIndex }) {
  if (columnIndex === 0) {
  if (rowIndex % this.tableData.length === 0) {
   return {
   rowspan: this.tableData.length,
   colspan: 1
   };
  } else {
   return {
   rowspan: 0,
   colspan: 0
   };
  }
  }
 }

表格导出:

import FileSaver from "file-saver";
import XLSX from "xlsx";
 output() {
  alert(1);
  let wb = XLSX.utils.table_to_book(document.querySelector("#mytable")); //mytable为表格的id名
  let wbout = XLSX.write(wb, {
  bookType: "xlsx",
  bookSST: true,
  type: "array"
  });
  try {
  FileSaver.saveAs(
   new Blob([wbout], { type: "application/octet-stream" }),
   "sheet.xlsx"
  );
  } catch (e) {
  if (typeof console !== "undefined") console.log(e, wbout);
  }
  return wbout;
 }

总结

以上所述是小编给大家介绍的Vue+elementui 实现复杂表头和动态增加列的二维表格功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
动态创建的表格单元格中的事件实现代码
Dec 30 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
May 12 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
Jun 02 Javascript
微信小程序 实现拖拽事件监听实例详解
Nov 16 Javascript
jQuery 全选 全不选 事件绑定的实现代码
Jan 23 Javascript
javascript ES6中箭头函数注意细节小结
Feb 17 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
Sep 02 Javascript
微信小程序报错:this.setData is not a function的解决办法
Sep 27 Javascript
Vue自定义指令实现checkbox全选功能的方法
Feb 28 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
Dec 05 Javascript
vue-router源码之history类的浅析
May 21 Javascript
Typescript类型系统FLOW静态检查基本规范
May 25 Javascript
优雅的使用javascript递归画一棵结构树示例代码
Sep 22 #Javascript
Webpack按需加载打包chunk命名的方法
Sep 22 #Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
Sep 21 #jQuery
vue2.0+SVG实现音乐播放圆形进度条组件
Sep 21 #Javascript
js+springMVC 提交数组数据到后台的实例
Sep 21 #Javascript
jquery弹窗时禁止body滚动条滚动的例子
Sep 21 #jQuery
vue实现文件上传读取及下载功能
Nov 17 #Javascript
You might like
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
PHP开发中四种查询返回结果分析
2011/01/02 PHP
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
基于jquery封装的一个js分页
2011/11/15 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
Python读写Redis数据库操作示例
2014/03/18 Python
Python中type的构造函数参数含义说明
2015/06/21 Python
详解Python的Lambda函数与排序
2016/10/25 Python
Python绘制七段数码管实例代码
2017/12/20 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
用Python解决x的n次方问题
2019/02/08 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
信息系统专业个人求职信范文
2013/12/07 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python