Vue+elementui 實現(xiàn)復雜表頭和動態(tài)增加列的二維表格功能
先上完成的效果圖:列是根據(jù)查詢結果增加的
數(shù)據(jù)格式:
表頭的數(shù)據(jù)取出:
data.data.forEach(element => { this.thead.push({ 品名: element.品名, 面取數(shù): element.面取數(shù), 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.面取數(shù)}}</td> </tr> <tr> <td @click="querylot(item.LOTNO)"> <el-link>{{item.LOTNO}}</el-link> </td> </tr> </template> </el-table-column>
表格內(nèi)數(shù)據(jù)整理:
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); //取出每個數(shù)組對象的鍵值 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
屬性,不然會出現(xiàn)列空白
<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 實現(xiàn)復雜表頭和動態(tài)增加列的二維表格功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
- element el-table如何實現(xiàn)表格動態(tài)增加/刪除/編輯表格行(帶校驗規(guī)則)
- Vue+ElementUI踩坑之動態(tài)顯示/隱藏表格的列el-table-column問題
- element-ui復雜table表格動態(tài)新增列、動態(tài)調整行以及列順序詳解
- vue element-ui表格自定義動態(tài)列具體實現(xiàn)
- el-element中el-table表格嵌套el-select實現(xiàn)動態(tài)選擇對應值功能
- vue?element-ui動態(tài)橫向統(tǒng)計表格的實現(xiàn)
- element表格行列的動態(tài)合并示例詳解
- element 動態(tài)合并表格的步驟
- element根據(jù)輸入動態(tài)生成表格的示例代碼
相關文章
在vue中使用echarts(折線圖的demo,markline用法)
這篇文章主要介紹了在vue中使用echarts(折線圖的demo,markline用法),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07Vue突然報錯doesn‘t?work?properly?without?JavaScript?enabled
最近在做項目的時候遇到了些問題,所以這篇文章主要給大家介紹了關于Vue突然報錯doesn‘t?work?properly?without?JavaScript?enabled的解決方法,需要的朋友可以參考下2023-01-01