vue+element ui 表格選中特定行導出為excel


vue+element ui 表格選中特定行導出為excel

1:使用場景:

當選中表格中某幾條數據(圖中演示的為兩行選中一行)進行導出為excel(如圖二)

2:安裝依賴:

npm install --save xlsx file-saver
npm install -D script-loader

3:引入依賴文件:

在src文件夾中創建名為excel的文件夾(注意大小寫)
將Blob.js、export2Excel.js兩個js文件復制到excel文件夾下
鏈接:https://pan.baidu.com/s/1P5qLlLrpcMxht_8RpUnZfw
提取碼:2wdf

4:表格樣式:

@selection-change="handleSelectionChange"為選中相應行時調用某個事件
:data="tableData"為表格的數據源

<el-table @selection-change="handleSelectionChange" :data="tableData">

5:在methods方法中寫一個方法監控選擇的行的情況:

handleSelectionChange (val) { // 操作多選
      this.multipleSelection = val; // 多選的行會存入multipleSelection數組中
    }

5:在methods方法中寫入列表下載的相關功能函數

// 列表下載
    downloadExcel () {
      this.$confirm('確定下載列表文件?', '提示', {
        confirmButtonText: '確定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.excelData = this.multipleSelection; // multipleSelection是一個數組,存儲表格中選擇的行的數據。
        this.export2Excel();
      }).catch(() => {

      });
    },
    // 數據寫入excel
    export2Excel () {
      var that = this;
      require.ensure([], () => {
        const { export_json_to_excel } = require('@/excel/export2Excel'); // 這里必須使用絕對路徑,使用@/+存放export2Excel的路徑
        const tHeader = ['表頭名稱1', '表頭名稱2', '表頭名稱3']; // 導出的表頭名信息
        const filterVal = ['表頭字段名1', '表頭字段名2', '表頭字段名3']; // 導出的表頭字段名,需要導出表格字段名
        const list = that.excelData;
        const data = that.formatJson(filterVal, list);

        export_json_to_excel(tHeader, data, 'excel表格名字');// 導出的表格名稱,根據需要自己命名
      });
    },
    // 格式轉換,直接復制即可
    formatJson (filterVal, jsonData) {
      return jsonData.map(v => filterVal.map(j => v[j]));
    }

5:在button中引入點擊事件

<Button type="primary" @click="downloadExcel">導出</Button>

以上就可以了

參考資料:
https://blog.csdn.net/qq_26242601/article/details/91874261


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM