element-table表格組件分頁后完整導出到excel的方法


首先表格導出需要使用到js-xlsx庫,vue通過npm  install xlsx安裝后使用important   XLSX from 'xlsx'導入

代碼片段:

----------------html------------------------------

  <el-button class="btn" type="primary" @click="onExport">導出</el-button>
  < el-table
   ref="filterTable"   @row-click="rowClickHandle"   :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" //數據分頁顯示
  >
  <el-table-column   show-overflow-tooltip    prop="name"   label="名稱"   ></el-table-column>   <el-table-column   show-overflow-tooltip   prop="address"   label="地址"   ></el-table-column>   <el-table-column show-overflow-tooltip label="狀態">   <template slot-scope="scope"> <span v-if="scope.row.statu == 0">待完成</span> <span v-if="scope.row.statu == 1">已完成</span>   </template>   </el-table-column>   <el-table-column   show-overflow-tooltip   label="操作"   v-if="oprationShow"   >   <template slot-scope="scope"> <span style="cursor: pointer" @click.stop="edit(scope)" >編輯</span> <span style="cursor: pointer" @click.stop="del(scope)" >刪除</span>   </template>   </el-table-column>
</el-table> <el-pagination   layout="total,prev, pager, next"   :total="total"   :page-size="pageSize"   @current-change="changePage"  > </el-pagination>

------------------------js--------------------------------

  onExport() {
        this.oprationShow = false    //不顯示操作按鈕
        this.pageSize = this.total    //將表格長度變成數據總長度 this.currentPage = 1          //顯示第一頁
        this.$nextTick(function () {
          let wb = XLSX.utils.table_to_book(this.$refs.filterTable.$el);
          let wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' });
          try {
        //Blob 對象表示一個不可變、原始數據的類文件對象。它的數據可以按文本或二進制的格式進行讀取,也可以轉換成 ReadableStream 來用於數據操作 _global.saveAs(
new Blob([wbout], { type: 'application/octet-stream' }), '表格.xlsx') } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) } this.pageSize = 13 //表格長度還原 this.oprationShow = true //顯示操作按鈕 return wbout; }) },
    changePage(currentPage){
        this.currentPage = currentPage;
    },
 

遇到的問題:

    1.js-xlsx方法只能導出表格dom元素所顯示的數據,分頁的數據無法導出

      解決方法:將表格在導出時不進行分頁,所有數據都顯示在第一頁

    2.表格的操作按鈕不需要導出

      解決辦法:將表格導出時隱藏操作按鈕當前列


免責聲明!

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



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