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 相关文章推荐
Ajax一统天下之Dojo整合篇
Mar 24 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
Feb 02 Javascript
JavaScript中的splice()方法使用详解
Jun 09 Javascript
基于jQuery实现收缩展开功能
Mar 18 Javascript
Angular 2应用的8个主要构造块有哪些
Oct 17 Javascript
BootStrap中
Dec 10 Javascript
vue父子组件的数据传递示例
Mar 07 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
Sep 22 jQuery
AngularJS自定义过滤器用法经典实例总结
May 17 Javascript
webpack多入口多出口的实现方法
Aug 17 Javascript
微信小程序的mpvue框架快速上手指南
May 15 Javascript
Vue.js仿Select下拉框效果
Feb 18 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
第八节 访问方式 [8]
2006/10/09 PHP
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
PHP判断一个数组是另一个数组子集的方法详解
2017/07/31 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
jQuery图片轮播实现并封装(一)
2016/12/03 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
vue-cli3+typescript初体验小结
2019/02/28 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
利用JS判断元素是否为数组的方法示例
2021/01/08 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
对TensorFlow的assign赋值用法详解
2018/07/30 Python
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
幼师岗位求职简历的自荐信格式
2013/09/21 职场文书
辅导员评语
2014/05/04 职场文书
党员公开承诺书内容
2014/05/20 职场文书
订货会主持词
2015/07/01 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
JavaScript原型链详解
2021/11/07 Javascript
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技