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 Ajax 跨域访问的解决方案
Mar 12 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
Mar 18 Javascript
jquery实现Ctrl+Enter提交表单的方法
Jul 21 Javascript
JavaScript 消息框效果【实现代码】
Apr 27 Javascript
js无法获取到html标签的属性的解决方法
Jul 26 Javascript
webstorm添加vue.js支持的方法教程
Jul 05 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
Vue实现固定定位图标滑动隐藏效果
May 30 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
Nov 17 Vue.js
微信小程序实现自定义底部导航
Nov 18 Javascript
Vue组件简易模拟实现购物车
Dec 21 Vue.js
解读Vue组件注册方式
May 15 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 加密与解密的斗争
2009/04/17 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
2014/04/01 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
php生成rss类用法实例
2015/04/14 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
jquery自定义表格样式
2015/11/23 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
django中的HTML控件及参数传递方法
2018/03/20 Python
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
Python 实现opencv所使用的图片格式与 base64 转换
2020/01/09 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
python中round函数保留两位小数的方法
2020/12/04 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
EQVVS官网:设计师男装和女装
2018/10/24 全球购物
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
网页设计个人找工作求职信
2013/11/28 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
医院院务公开实施方案
2014/05/03 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
简爱电影观后感
2015/06/10 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers