elementui 表格表头竖着显示_Vue+elementui 实现复杂表头和动态增加列的二维表格

先上完成的效果图:列是根据查询结果增加的

数据格式:

表头的数据取出:

data.data.foreach(element => {

this.thead.push({

品名: element.品名,

面取数: element.面取数,

lotno: element.lot

});

element table中:

v-for="(item,index) in thead"

:prop="item.lotno"

:key="index"

align="center"

width="180"

>

{{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;

}

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!


版权声明:本文为weixin_39770626原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。