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 相关文章推荐
比较全面的event对像在IE与FF中的区别 推荐
Sep 21 Javascript
js DOM 元素ID就是全局变量
Sep 20 Javascript
js对table的td进行相同内容合并示例详解
Dec 27 Javascript
常用的jQuery前端技巧收集
Dec 24 Javascript
JS制作简单的三级联动
Mar 18 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
Apr 14 Javascript
全面了解javascript中的错误处理机制
Jul 18 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
Apr 18 Javascript
微信小程序 动态传参实例详解
Apr 27 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
node.js 模块和其下载资源的镜像设置的方法
Sep 06 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
Nov 11 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
PHP4 与 MySQL 交互使用
2006/10/09 PHP
ie 调试javascript的工具
2009/04/29 Javascript
js中array的sort()方法使用介绍
2014/02/20 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
微信JS接口大全
2016/08/25 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
python3新特性函数注释Function Annotations用法分析
2016/07/28 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
python实现自动解数独小程序
2019/01/21 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
如何基于Python创建目录文件夹
2019/12/31 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
python Plotly绘图工具的简单使用
2020/03/03 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
delegate与普通函数的区别
2014/01/22 面试题
Python里面search()和match()的区别
2016/09/21 面试题
大学生物业管理求职信
2013/10/24 职场文书
违反工作纪律检讨书
2014/02/15 职场文书
民主生活会剖析材料
2014/09/30 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
总结几个非常实用的Python库
2021/06/26 Python