Vue+elementui实现复杂表头和动态增加列的二维表格功能
先上完成的效果图:列是根据查询结果增加的
为芝罘等地区用户提供了全套网页设计制作服务,及芝罘网站建设行业解决方案。主营业务为网站建设、成都网站设计、芝罘网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
数据格式:
表头的数据取出:
data.data.forEach(element => { this.thead.push({ 品名: element.品名, 面取数: element.面取数, LOTNO: element.LOT });
element table中:
{{item.品名}} {{item.面取数}} {{item.LOTNO}}
表格内数据整理:
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
属性,不然会出现列空白
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 实现复杂表头和动态增加列的二维表格功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对创新互联网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
新闻标题:Vue+elementui实现复杂表头和动态增加列的二维表格功能
分享URL:http://cdiso.cn/article/iicjep.html