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 相关文章推荐
jQuery验证Checkbox是否选中的代码 推荐
Sep 04 Javascript
javascript求日期差的方法
Mar 02 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
Apr 19 Javascript
js Canvas实现圆形时钟教程
Sep 19 Javascript
JS异步文件分片断点上传的实现思路
Dec 25 Javascript
vue基于Element构建自定义树的示例代码
Sep 19 Javascript
在vue中添加Echarts图表的基本使用教程
Nov 22 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
Mar 02 Javascript
axios发送post请求,提交图片类型表单数据方法
Mar 16 Javascript
vue多次循环操作示例
Feb 08 Javascript
微信小程序scroll-view的滚动条设置实现
Mar 02 Javascript
vue使用过滤器格式化日期
Jan 20 Vue.js
优雅的使用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
php实现的支持断点续传的文件下载类
2014/09/23 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
一个用js实现控制台控件的代码
2007/09/04 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
javascript中this指向详解
2016/04/23 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
2018/01/31 jQuery
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
webpack dll打包重复问题优化的解决
2018/10/10 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
python使用Geany编辑器配置方法
2020/02/21 Python
html5 Canvas画图教程(3)—canvas出现1像素线条模糊不清的原因
2013/01/09 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
小学后勤管理制度
2014/01/14 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
Golang二维数组的使用方式
2021/05/28 Golang