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下组织javascript代码(js函数化)
Aug 25 Javascript
JavaScript Accessor实现说明
Dec 06 Javascript
用JS做的简单的可折叠的两级树形菜单
Sep 21 Javascript
iframe窗口高度自适应的实现方法
Jan 08 Javascript
理解JavaScript表单的基础知识
Jan 25 Javascript
Yarn的安装与使用详细介绍
Oct 25 Javascript
完美实现js焦点轮播效果(一)
Mar 07 Javascript
详解vue mint-ui源码解析之loadmore组件
Oct 11 Javascript
原生javascript实现文件异步上传的实例讲解
Oct 26 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
Apr 02 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 Javascript
vue封装数字翻牌器
Apr 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
第一个无线电台是由谁发明的
2021/03/01 无线电
PHP Socket 编程
2010/04/09 PHP
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
crontab无法执行php的解决方法
2016/01/25 PHP
js身份证验证超强脚本
2008/10/26 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
非常漂亮的js烟花效果
2020/03/10 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
在Django框架中编写Contact表单的教程
2015/07/17 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
Python csv模块使用方法代码实例
2019/08/29 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
食堂个人先进事迹
2014/01/22 职场文书
中等生评语大全
2014/05/04 职场文书
团日活动总结书
2014/05/08 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python